Я столкнулся с некоторыми трудностями при использовании пакетаМоя цель состоит в том, чтобы использовать цикл for, чтобы зациклить весь документ в каталоге и зациклить всю строку внутри каждого документа и заменить строку в нем.
Когда я пытаюсь выполнить тест: я тестируюкод только с одним документом, код:
echo off
set "search=B"
set "replace=A"
set "textfile=Testing.txt"
set "newfile=Output.txt"
cd/d D:\user\testing
(for /f "delims=" %%i in (%textfile%) do(
set "line=%%i"
set local enabledelayedexpansion
set "line=!line:%search%=%replace%!"
echo(!line!
endlocal
))>"%newfile%"
del %textfile%
rename %newfile% %textfile%
Ввод выглядит следующим образом: BC BCB BCBC
Результат: AC ACA ACAC
Однако все идет не таккогда я устанавливаю другой код цикла for:
set "rootDir=D:\user\testing"
for %%j in ("%rootDir%\*") do call :Replace "%rootDir%" "%%~nj"
goto :eof
:Replace
set "search=B"
set "replace=A"
set "newfile=Output.txt"
cd /d %1
(for /f "delims=" %%i in (%2) do(
set "line=%%i"
set local enabledelayedexpansion
set "line=!line:%search%=%replace%!"
echo(!line!
endlocal
))>"%newfile%"
del %textfile%
rename %newfile% %textfile%
goto :eof
В это время все содержимое документов удаляется, и отображается название их документа.
Может кто-нибудь помочь мне решить эту проблему?Есть ли что-то не так в логике?Пожалуйста, помогите