Невозможно успешно запустить пакетный скрипт в цикле for - PullRequest
0 голосов
/ 13 ноября 2018

Я столкнулся с некоторыми трудностями при использовании пакетаМоя цель состоит в том, чтобы использовать цикл 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

В это время все содержимое документов удаляется, и отображается название их документа.

Может кто-нибудь помочь мне решить эту проблему?Есть ли что-то не так в логике?Пожалуйста, помогите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...