У меня есть сотни json файлов, в которых мне нужно заменить определенную строку, назовем ее «СТАРАЯ», другой строкой, назовем ее «НОВАЯ». Строка «OLD» встречается как в теле, так и в имени файла файлов. Итак, у меня есть:
OLD.json
OLD2.json
OLD3.json
И мне нужно, чтобы они стали:
NEWER.json
NEWER1.json
NEWER2.json
Теперь я разобрался с внутренней частью файлов, но я борюсь с именами файлов , Поскольку 2 строки имеют разную длину, у меня возникли проблемы с использованием функции RENAME.
Вот что у меня есть:
set "OLD=TEMPLATE_BLOCK"
set /p NEWER=Enter Block Name:
XCOPY "D:\templates\*%OLD%*.json" "D:\exports" /S /Y
cd "D:\exports"
for /f "delims=" %%g in ('dir %OLD%?.json /b /s') do (
for /f "delims=" %%h in ('type "%%~g" ^& break ^> "%%~g" ') do (
set "line=%%h"
setlocal EnableDelayedExpansion
set "line=!line:%OLD%=%NEWER%!"
>>"%%~g" echo(!line!
endlocal
)
REM THIS IS THE PART I NEED HELP WITH:
ren "%%g*" "%NEWER%*"
)