Unable to parse variable length string separated by delimiter RRS feed

  • Question

  • 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?





    Tuesday, June 15, 2010 4:54 PM

All replies

  • I have got the solution. Here it is:
    type nul>output.txt
    FOR /F "usebackq tokens=*" %%x in ("orig.txt") do (
    set LINE=%%x
    call set LINE=%%LINE:\=//%%
    call echo:%%LINE%%
    ) >output.txt


    Wednesday, June 16, 2010 9:44 AM