Мне нужно заменить строку в текстовом файле (InputFile.txt
) с помощью командного/командного сценария Windows. Я нашел следующий скрипт (replace.cmd
), но это не дает мне точного результата.Найти и заменить строку в текстовом файле
InputFile.txt
:
1111 aaaa
2222 bbbb
$cc = 3333
Пакетный сценарий (replace.cmd
), который я использую, чтобы заменить $cc = 3333
на cc = 4444
является:
@echo OFF
setlocal enabledelayedexpansion
set "search=$cc = 3333"
set "replace=cc = 4444"
set "textfile=InputFile.txt"
set "newfile=OutputFile.txt"
(for /f "delims=" %%i in (%textfile%) do (
set "line=%%i"
setlocal enabledelayedexpansion
set "line=!line:%search%=%replace%!"
echo(!line!
endlocal
))>"%newfile%"
Вывод, что я получаю после запуска кода является:
1111 aaaa
2222 bbbb
3333=cc = 4444= 3333
Это должно быть примерно так:
1111 aaaa
2222 bbbb
cc = 4444
Вы действительно *** используете «MS-DOS» или ссылаетесь на командную строку в Windows? –
Используемый сценарий не предназначен для использования строки поиска, которая включает символ ** = **. Чтобы протестировать скрипт, замените строку поиска на «set search = 2222 bbbb» и замените как «set replace = $% RANDOM%» – Compo
Можете ли вы использовать Vbscript? – Squashman