Используйте командный файл, чтобы переименовать первую часть имени файла и изменить длину - PullRequest
0 голосов
/ 27 марта 2020

У меня есть сотни 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%*"
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...