Without going into why, I need a batch file which extracts a set of section names from an INI file. Luckily all the section names I want begin with the same string, so piece of cake, right?. The problem is the section name may include "%20". For example, this INI file:
[Testing\Test%20x]
A=aaa
B=bbb
Unfortunately, findstr replaces the %20 with 0. Here's what I've come up with for my batch file:
@ECHO off
SETLOCAL
FOR /F "delims=" %%A IN ('findstr \[Testing* Test.ini') DO (CALL :DOIT %%A)
ENDLOCAL
GOTO :EXIT
:DOIT
SET First=%1
SET Second=%First:[=%
SET Third=%Second:]=%
SET Fourth=%Third:0=20%
SET Fifth=%Fourth:20=%%20%
ECHO %1 %First% %Second% %Third% %Fourth% %Fifth%
EXIT /B
:EXIT
Which produces the output:
[Testing\Test0x] [Testing\Test0x] Testing\Test0x] Testing\Test0x Testing\Test20x Testing\Testx0
Escaping the percent with a backslash or caret doesn't work. How can I get the percent sign into the string?
I used a file named
q77476155.txtcontaining your data for my testing.It isn't
findstrthat's doing the substitution, it's%2appearing in the parameter to the subroutine that's being replaced.Now - what is it that you want to do with thw string?