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

时间:2019-02-13 07:41:17

标签: batch-file

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

我的文件名如下:

newfile_MRG.txt
newfile_DRK.txt
...

我有成对的零钱。例如,我将用文件名XYZ更改MRG或用文件UWT更改DRK。我想将文件复制到另一个文件夹并替换在那里,例如它将是:

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 :(得分:4)

您可以使用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.*"
)