Я хочу проанализировать таблицу в текстовом файле, изменить порядок некоторых столбцов и внести небольшие изменения. Я использую цикл FOR в BAT-файле командного процессора.

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

Пока это работает, но медленно. Я хочу использовать другой синтаксис цикла 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
)

Проблема в том, что Content FOO не заменяется BAR. Ни с %% ни с !! , Как использовать замену контента при использовании синтаксиса FOR IN DO () ?

1 ответ1

0

The

set cBB=!cb:FOO=BAR!

работает, но вам нужно изменить все вхождения %variable[:modifier]optional% для использования !…!; в частности, вам нужно

echo !cB! !cA! !cBB!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .