batch-file - 如何使用 Windows 批处理文件从外部文件中搜索值并替换为另一个值
问题描述
我想使用一个 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
...
我知道如何引入变量,但我无法设置循环并从外部文件中读取要搜索和替换的值。你能指导我怎么做吗?
解决方案
你可以用 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.*"
)
推荐阅读
- java - 从firebase加载数据时RecyclerView onBindViewHolder()错误
- javascript - Javascript 监听 DOM 中的多个事件
- python - Python NLTK Prepare Data from CSV for Tokenization
- python-3.x - 如何使用 MLP 评分功能?错误:形状 (295,1) 和 (7,450) 未对齐:1 (dim 1) != 7 (dim 0)
- csvhelper - CsvReader 可以根据列数使用不同的记录类型映射吗?
- javascript - 获取 api 返回错误的响应对象
- haskell - 如何在 Travis 构建中传递 GHC 选项?
- azure - 访问元数据会导致 Azure 数据工厂的嵌套管道
- python - StreamingHttpResponse:将数据库连接返回到池/关闭它
- c++ - C++:从 main 到 hpp 的未定义引用