Home > other >  Why is not the entire line read from a file used as search string with my batch file?
Why is not the entire line read from a file used as search string with my batch file?

Time:07-11

Can someone have a look at this mess please?

I have in the file test.txt a line with the search string Coupon (%), but FINDSTR searches just for Coupon. I have tried another line with search string Coupon frequency in file test.txt which results in searching also just for Coupon.

This is the command line in the batch file:

for /f %%f in ('dir /s /b C:\Users\me\Desktop\script\links\') do for /f %%t in ('type C:\Users\me\Desktop\script\test.txt') do for /f "delims=:" %%a in ('findstr /n /c:"%%t" %%f') do C:\Users\me\Desktop\script\links2.exe %%f %%a && echo %%t

How can I make this command line to use the entire line in file test.txt as entire search string as I would expect with the FINDSTR /c: switch please?

It works fine if I use the option /g: on searching the file test.txt. But I need the search results output to be in the order in which I specified the search strings in the file test.txt and /g: outputs all lines with any of the searched strings in line order of the searched file which is why I'm using TYPE.

CodePudding user response:

You need

... for /f "delims=" %%t in ...

Stands out. Your code will select the first token by default, using the default delimiters (Space or Tab) hence "Coupon". Using "delims=" selects the entire line for %%t

  • Related