如何用Windows批处理文件从外部文件中搜索值并用另一个值替换



我想使用蝙蝠文件来处理我的日常任务之一。让我解释一下:

我有文件名:

newfile_MRG.txt
newfile_DRK.txt
...

我有成对的变化。例如,我将用文件名更改XYZ或用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
...

我知道如何介绍变量,但是我无法设置循环并读取要搜索并从外部文件替换的值。您能指导我如何做吗?

您可以使用for loop进行操作:

@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.*"
)

最新更新