Unable to parse variable length string separated by delimite
Posted: 15 Jun 2010 10:58
Hi,
I have a problem with parsing a string, which consists only of directory path. For ex.
My input string is
---------------------------------
Abc\Program Files\sample\
---------------------------------
My output should be
---------------------------------
Abc//Program Files//sample
---------------------------------
The script should work for input path of any length i.e., it can contain any no. of subdirectories. (For ex., abc\temp\sample\folder\joe\)
I have looked for help in many links but to no avail. Looks like FOR command extracts only one whole line or a string (when we use ‘token’ keyword in FOR syntax) but my problem is that I am not aware of the input path length and hence, the no. of tokens.
My idea was to use \ as a delimiter and then extract each word before and after it (\), and put the words to an output file along with // till we reach the end of the string.
I tried implementing the following but it did not work:
-----------------------------------------------------------
@echo off
FOR /F "delims=\" %%x in (orig.txt) do (
IF NOT %%x == "" echo.%%x//>output.txt
)
-----------------------------------------------------------
The file orig.txt contains only one line i.e, Abc\Program Files\sample\
The output that I get contains only: Abc//
The above output contains blank spaces as well after ‘Abc//’
My desired output should be: Abc//program Files//sample//
Can anyone please help me with this?
Regards,
Technext
I have a problem with parsing a string, which consists only of directory path. For ex.
My input string is
---------------------------------
Abc\Program Files\sample\
---------------------------------
My output should be
---------------------------------
Abc//Program Files//sample
---------------------------------
The script should work for input path of any length i.e., it can contain any no. of subdirectories. (For ex., abc\temp\sample\folder\joe\)
I have looked for help in many links but to no avail. Looks like FOR command extracts only one whole line or a string (when we use ‘token’ keyword in FOR syntax) but my problem is that I am not aware of the input path length and hence, the no. of tokens.
My idea was to use \ as a delimiter and then extract each word before and after it (\), and put the words to an output file along with // till we reach the end of the string.
I tried implementing the following but it did not work:
-----------------------------------------------------------
@echo off
FOR /F "delims=\" %%x in (orig.txt) do (
IF NOT %%x == "" echo.%%x//>output.txt
)
-----------------------------------------------------------
The file orig.txt contains only one line i.e, Abc\Program Files\sample\
The output that I get contains only: Abc//
The above output contains blank spaces as well after ‘Abc//’
My desired output should be: Abc//program Files//sample//
Can anyone please help me with this?
Regards,
Technext