Как искать значения и заменять другим значением из внешнего файла пакетный файл Windows - PullRequest
0 голосов
/ 13 февраля 2019

Я бы хотел использовать файл bat для выполнения одной из моих ежедневных задач.Позвольте мне объяснить:

У меня есть имена файлов, такие как:

newfile_MRG.txt
newfile_DRK.txt
...

И у меня есть пары для изменения.Например, я изменю MRG с XYZ в имени файла или DRK с UWT в имени файла.Я хотел бы скопировать файл в другую папку и заменить там, например, это будет:

newfile_XYZ.txt
newfile_UWT.txt

Я написал командный файл:

@echo off
set Lang=
mkdir "Child_Locales"
copy *DRK.* "Child_Locales"
cd Child_Locales
ren *DRK.* *UWT.*
cd..
copy *MRG.* "Child_Locales"
cd Child_Locales
ren *MRG.* *XYZ.*
cd..

И это не оптимально.Каждый раз, когда новая пара вводится или изменяется, мне приходится обновлять скрипт.

Вместо этого я хочу создать TXT-файл, в котором написаны эти пары:

MRG=XYZ
DRK=UWT
...

Я знаю, как представитьпеременные, но я не мог установить цикл и чтение значений для поиска и замены из внешнего файла.Не могли бы вы рассказать мне, как это сделать?

1 Ответ

0 голосов
/ 13 февраля 2019

Вы можете сделать это с помощью цикла for:

@echo off
mkdir "Child_locales">nul
for /f "tokens=1,* delims==" %%i in (somefile.txt) do (
    copy "*%%i.*" "Child_Locales"
    ren "Child_Locales\*_%%i.*" "*_%%j.*"
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...