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

标签 batch-file

我想使用 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
...

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

最佳答案

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

关于batch-file - 如何使用 Windows 批处理文件搜索值并替换为外部文件中的另一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54664904/

相关文章:

windows - robocopy 将选项视为文件

batch-file - 使用多个选项卡启动 MobaXterm 的批处理脚本

batch-file - 如何在 Batch 中不换行的情况下将双引号回显到文件中?

git - 在 git shell 中运行批处理文件

batch-file - 批处理文件中用户桌面的路径

java - 使用批处理查找java PID

windows - 调用 msysgit sh.exe 的批处理文件中的转义空格?

windows - 需要运行.exe文件7秒然后杀死exe,同时在文本文件中进行输入和输出

powershell - 如何使用脚本中的参数启动一个新的 Powershell 窗口?

windows - 如何在 if 子句中安全地回显变量的值而跳过双引号?