Archive

Archive for November, 2009

2009/11/05 Leave a comment

source:http://www.dostips.com/DtTipsStringManipulation.php#Snippets.MidString

Align Right Align text to the right i.e. to improve readability of number columns.
Left String Extract characters from the beginning of a string.
Map and Lookup Use Key-Value pair list to lookup and translate values.
Mid String Extract a Substring by Position.
Remove Remove a substring using string substitution.
Remove both Ends Remove the first and the last character of a string.
Remove Spaces Remove all spaces in a string via substitution.
Replace Replace a substring using string substitution.
Right String Extract characters from the end of a string.
Split String Split a String, Extract Substrings by Delimiters.
String Concatenation Add one string to another string.
Trim Left Trim spaces from the beginning of a string via “FOR” command.
Trim Quotes Remove surrounding quotes via FOR command.
Trim Right Trim spaces from the end of a string via substitution.
Trim Right Trim spaces from the end of a string via “FOR” command.

Align Right – Align text to the right i.e. to improve readability of number columns

Description: Add leading spaces to a string to make sure the output lines up. I.e. for variables no longer than 8 characters add 8 spaces at the front and then show only the last 8 characters of the variable.
Script:
1. 

2.

3.

4.

5.

6.

 

set x=3000 

set y=2

set x=        %x%

set y=        %y%

echo.X=%x:~-8%

echo.Y=%y:~-8%

 

Script Output:
DOS Script Ouput
X=    3000
Y=       2

 

TOP 

2008-01-01

Left String – Extract characters from the beginning of a string

Description: Similar to the Left function in VB a batch script can return a specified number of characters from the left side of a string by specifying a substring for an expansion given a position of 0 and a length using :~ while expanding a variable content. The example shows how to return the first 4 characters of a string.
Script:
1. 

2.

3.

4.

 

set str=politic 

echo.%str%

set str=%str:~0,4%

echo.%str%

 

Script Output:
DOS Script Ouput
politic
poli

 

TOP 

2008-01-01

Map and Lookup – Use Key-Value pair list to lookup and translate values

Description: This example shows an approach to map a name of a month into it`s corresponding two digit number. The key-value pairs are listed in the map variable separated by semicolon. Key and value itself are separated by one dash character. Same can be used to tranlate a day-of-the-week short string into a day-of-the-week long string by changing the map content only.
Script:
1. 

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

 

REM ---- Example 1: Translate name of month into two digit number ---- 

SET v=Mai

SET map=Jan-01;Feb-02;Mar-03;Apr-04;Mai-05;Jun-06;Jul-07;Aug-08;Sep-09;Oct-10;Nov-11;Dec-12

CALL SET v=%%map:*%v%-=%%

SET v=%v:;=&rem.%

ECHO.%v%

REM ---- Example 2: Translate abbreviation into full string ----

SET v=sun

set map=mon-Monday;tue-Tuesday;wed-Wednesday;thu-Thursday;fri-Friday;sat-Saturday;sun-Sunday

CALL SET v=%%map:*%v%-=%%

SET v=%v:;=&rem.%

ECHO.%v%

 

Script Output:
DOS Script Ouput
05
Sunday

 

TOP 

2008-01-01

Mid String – Extract a Substring by Position

Description: Similar to the Mid function in VB a batch script can return a specified number of characters from any position inside a string by specifying a substring for an expansion given a position and length using :~ while expanding a variable content. The example here shows how to extract the parts of a date.
Script:
1. 

2.

3.

4.

5.

 

echo.Date   : %date% 

echo.Weekday: %date:~0,3%

echo.Month  : %date:~4,2%

echo.Day    : %date:~7,2%

echo.Year   : %date:~10,4%

 

Script Output:
DOS Script Ouput
Date   : Sat 03/11/2006
Weekday: Sat
Month  : 03
Day    : 11
Year   : 2006

 

TOP 

2008-01-01

Remove – Remove a substring using string substitution

Description: The string substitution feature can also be used to remove a substring from another string. The example shown here removes all occurrences of “the ” from the string variable str.
Script:
1. 

2.

3.

4.

 

set str=the cat in the hat 

echo.%str%

set str=%str:the =%

echo.%str%

 

Script Output:
DOS Script Ouput
the cat in the hat
cat in hat

 

TOP 

2008-01-01

Remove both Ends – Remove the first and the last character of a string

Description: Using :~1,-1 within a variable expansion will remove the first and last character of the string.
Script:
1. 

2.

3.

4.

 

set str=politic 

echo.%str%

set str=%str:~1,-1%

echo.%str%

 

Script Output:
DOS Script Ouput
politic
oliti

 

TOP 

2008-01-01

Remove Spaces – Remove all spaces in a string via substitution

Description: This script snippet can be used to remove all spaces from a string.
Script:
1. 

2.

3.

4.

 

set str=      word       &rem 

echo."%str%"

set str=%str: =%

echo."%str%"

 

Script Output:
DOS Script Ouput
"      word       "
"word"

 

TOP 

2008-01-01

Replace – Replace a substring using string substitution

Description: To replace a substring with another string use the string substitution feature. The example shown here replaces all occurrences “teh” misspellings with “the” in the string variable str.
Script:
1. 

2.

3.

4.

 

set str=teh cat in teh hat 

echo.%str%

set str=%str:teh=the%

echo.%str%

 

Script Output:
DOS Script Ouput
teh cat in teh hat
the cat in the hat

 

TOP 

2008-01-01

Right String – Extract characters from the end of a string

Description: Similar to the Right function in VB a batch script can return a specified number of characters from the right side of a string by specifying a substring for an expansion given a negative position using :~ while expanding a variable content. The example shows how to return the last 4 characters of a string.
Script:
1. 

2.

3.

4.

 

set str=politic 

echo.%str%

set str=%str:~-4%

echo.%str%

 

Script Output:
DOS Script Ouput
politic
itic

 

TOP 

2008-01-01

Split String – Split a String, Extract Substrings by Delimiters

Description: Use the FOR command to split a string into parts. The example shows how to split a date variable into its parts.
Script:
1. 

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

 

echo.-- Split off the first date token, i.e. day of the week 

for /f %%a in ("%date%") do set d=%%a

echo.Date   : %date%

echo.d      : %d%

echo.

echo.-- Split the date into weekday, month, day, and year, using slash and space as delimiters

for /f "tokens=1,2,3,4 delims=/ " %%a in ("%date%") do set wday=%%a&set month=%%b&set day=%%c&set year=%%d

echo.Weekday: %wday%

echo.Month  : %month%

echo.Day    : %day%

echo.Year   : %year%

 

Script Output:
DOS Script Ouput
-- Split off the first date token, i.e. day of the week
Date   : Thu 12/02/2005
d      : Thu

-- Split the date into weekday, month, day, and year, using slash and space as delimiters
Weekday: Thu
Month  : 12
Day    : 02
Year   : 2005

 

TOP 

2008-02-26

String Concatenation – Add one string to another string

Description: This example shows how to add two strings in DOS.
Script:
1. 

2.

3.

4.

5.

6.

7.

8.

9.

10.

 

set "str1=Hello" 

set "str2=World"

set "str3=%str1%%str2%"

set "str4=%str1% %str2%"

set "str1=%str1% DOS %str2%"

echo.%str3%

echo.%str4%

echo.%str1%

 

Script Output:
DOS Script Ouput
HelloWorld
Hello World
Hello DOS World

 

TOP 

2008-04-28

Trim Left – Trim spaces from the beginning of a string via “FOR” command

Description: Use the FOR command to trim spaces at the beginning of a variable. In this example the variable to be trimmed is str.
Script:
1. 

2.

3.

4.

 

set str=               15 Leading spaces to truncate 

echo."%str%"

for /f "tokens=* delims= " %%a in ("%str%") do set str=%%a

echo."%str%"

 

Script Output:
DOS Script Ouput
"               15 Leading spaces to truncate"
"15 Leading spaces to truncate"

 

TOP 

2008-01-01

Trim Quotes – Remove surrounding quotes via FOR command

Description: The FOR command can be used to safely remove quotes surrounding a string. If the string does not have quotes then it will remain unchanged.
Script:
1. 

2.

3.

4.

 

set str="cmd politic" 

echo.%str%

for /f "useback tokens=*" %%a in ('%str%') do set str=%%~a

echo.%str%

 

Script Output:
DOS Script Ouput
"cmd politic"
cmd politic

 

TOP 

2008-01-01

Trim Right – Trim spaces from the end of a string via “FOR” command

Description: Trimming spaces at the end of a variable seems a little tricky. The following example shows how to use a FOR loop to trim up to 31 spaces from the end of a string. It assumes that Delayed Expansionis enabled.
Script:
1. 

2.

3.

4.

 

set str=15 Trailing Spaces to truncate               &rem 

echo."%str%"

for /l %%a in (1,1,31) do if "!str:~-1!"==" " set str=!str:~0,-1!

echo."%str%"

 

Script Output:
DOS Script Ouput
"15 Trailing Spaces to truncate               "
"15 Trailing Spaces to truncate"

 

TOP 

2008-01-01

Trim Right – Trim spaces from the end of a string via substitution

Description: Trimming spaces at the end of a variable seems a little tricky. The following example shows how to use the string substitution feature to trim up to 31 spaces from the end of a string. It assumes that the string to be trimmed never contains two hash “##” characters in a row.
Script:
1. 

2.

3.

4.

5.

6.

7.

8.

9.

10.

 

set str=15 Trailing Spaces to truncate               &rem 

echo."%str%"

set str=%str%##

set str=%str:                ##=##%

set str=%str:        ##=##%

set str=%str:    ##=##%

set str=%str:  ##=##%

set str=%str: ##=##%

set str=%str:##=%

echo."%str%"

 

Script Output:
DOS Script Ouput
"15 Trailing Spaces to truncate               "
"15 Trailing Spaces to truncate"
Categories: VBS/BATCH Tags: , ,