| 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 :-)
![]() | ![]() |