Привет Я хочу установить значение InFile
для всех текстовых файлов в каталоге, что означает, что я хочу, чтобы пакетный файл загружался и выполнял команду для всех текстовых файлов в каталоге по одному один.установить значения по именам файлов в каталоге
Обычно я просто копирую команду сколько раз файлов, то я заменяю Infile
на каждое имя файла. По этому коду я получаю имена файлов, а затем я их заменяю.
cd /d "dir"
dir /a /b /-p /o:gen >names.txt
и вот пример команды.
@Echo OFF
REM Set These Variables
SET "InFile=123.txt"
SET "OutFile=NowLoad.txt"
SET "Replace=KK"
SET "ReplaceWith=JJ"
REM Get Total Lines Number [including empty lines]
FOR /F %%A IN ('TYPE "%InFile%"^|find /v /c ""') DO SET "Till=%%A"
REM Create The OutFile with changes
SETLOCAL EnableDelayedExpansion
<"!InFile!" (
FOR /L %%a IN (1 1 0) DO SET /p "="
FOR /L %%A IN (1 1 %Till%) DO (
SET "line="
SET /P "line="
IF "!line!x" == "x" (Echo.
) ELSE (Echo !line:%Replace%=%ReplaceWith%!)
)
)>>"%OutFile%"
ENDLOCAL
Я не думаю, что ваша команда 'dir/a/b/-p o: gen' верна – Paul
Вы должны прочитать, как задать вопрос. Потому что я потерялся после прочтения «Я хочу установить значение InFile для всех текстовых файлов в каталоге» – Paul
Где 'names.txt' используется в вашей партии? – Paul