Unable to parse variable length string separated by delimiter

Posted by Technext on Stack Overflow See other posts from Stack Overflow or by Technext
Published on 2010-06-15T16:48:01Z Indexed on 2010/06/15 16:52 UTC
Read the original article Hit count: 160

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

© Stack Overflow or respective owner

Related posts about windows-scripting

Related posts about windows-batch