Hopefully "ScriptingTipsAndTricks" helps you with your batch file or vbscript scripting :-)
[Bottom][Contents][Prev]: NsLookup() - Look up DNS servers[Next]: PAUSE() - which is reliable
\->Batch Files->PADDING() - Pad on Left,Right, No Truncation

[anchor]

The Code for: "PADDING() [Pad on Left,Right, No Truncation].cmd.txt"

This is the example, a shortcut was installed to this code :

@echo off
::@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
:: $Header:   C:/DBAREIS/Projects.PVCS/Win32/ScriptingTipsAndTricks/EXAMPLE[cmd].PADDING() [Pad on Left,Right, No Truncation].cmd.txt.pvcs   1.0   29 Jun 2014 12:51:20   USER "Dennis"  $
::@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION


Set VAL=XYZ
call :PADDING "VAL"  "R #10"
     echo VAL="%VAL%" ^<============

Set VAL=12
     call :PADDING "VAL"  "L0#10"
echo VAL="%VAL%" ^<============
goto :EOF



::============================================================================
:PADDING
::     Example specs are "R #50" & "L0#50"  NOTE it is possible for no padding to be added
::===========================[ v14.1209a ]====================================
    ::--- Get parameters ----------------------------------------------------
    set InOutVar=%~1
    set  PadSpec=%~2
         set  PadSide=%PadSpec:~0,1%
         set  PadChar=%PadSpec:~1,1%
         set PaddedTo=%PadSpec:~3%

    ::--- Make sure that we won't be truncating the value -------------------
    set ValueIn=!%InOutVar%!
    set ValueXX=!ValueIn:~0,%PaddedTo%!
    if not "%ValueIn:"=`%" == "%ValueXX:"=`%" goto :EOF

    ::--- Not truncating so need to pad and update env var ------------------
    set Padding=
    for /L %%A IN (1,1,%PaddedTo%) do set Padding=!Padding!%PadChar%
    if /I     "%PadSide%" == "L" set ValueOut=%Padding%%ValueIn%& set ValueOut=!ValueOut:~-%PaddedTo%!
    if /I not "%PadSide%" == "L" set ValueOut=%ValueIn%%Padding%& set ValueOut=!ValueOut:~0,%PaddedTo%!
    set %InOutVar%=%ValueOut%
    goto :EOF

Please note that that I am not trying to show how great I am by producing batch files 9,000 characters long on one line that no one will understand or be able to debug when they go wrong. I am going out of my way to comment the code and make it verbose so beginners and advanced users will both benefit. I don't claim to be an expert that knows everything, if I'm wrong or make a mistake then please contact me and let me know :-)


Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.Please email me any feedback, additional information or corrections.
See this page online (look for updates)

[Top][Contents][Prev]: NsLookup() - Look up DNS servers[Next]: PAUSE() - which is reliable


ScriptingTipsAndTricks© is (C)opyright Dennis Bareis 2003-2008 (All rights reserved).
Sunday September 07 2014 at 12:50pm
Visit ScriptingTipsAndTricks's Home Page
Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.