Eu quero analisar uma tabela em um arquivo de texto, reordenar algumas colunas e fazer pequenas modificações. Eu uso o loop FOR em um arquivo BAT do processador de comando.
echo Header line > outfile.txt
rem get each line from infile.txt but skip first two columns
FOR /f "tokens=3,4*" %%a IN (infile.txt) DO call :handle_line %%a %%b
goto :eof
:handle_line
set a=%1
set b=%2
set b=%b:FOO=BAR%
echo %2 %1 >>outfile.txt
goto :eof
Isso funciona até agora, mas é lento. Eu quero usar a outra sintaxe de loop FOR
setlocal enabledelayedexpansion
FOR /f "tokens=3,4*" %%a IN (infile.txt) DO (
set cA=%%a
set cB=%%b
set cB=%cb:FOO=BAR%
set cBB=!cb:FOO=BAR!
echo %cB% %cA% %cBB%>>outfile.txt
)
O problema é que o conteúdo FOO não é substituído pelo BAR. Nem com %%
nem !!
. Como devo usar a substituição de conteúdo quando uso o FOR IN DO ()
sintaxe?
windows
batch-file
harper
fonte
fonte