【发布时间】:2019-02-15 00:29:16
【问题描述】:
我有两个文件:
old_names.txt
oldname1
oldname2
new_names.txt
newname1
newname2
我想在我的文件夹中搜索包含“old_names”的文件名,并将“old_name”字符串替换为相应的“new_name”。
for /f %%i in (old_names.txt) do (
// get corresponding %%j new_name
for /f %%a in ('dir /b /a-d *%%i*') do ren %%a %%j
)
如何检索对应的 new_name ?
【问题讨论】:
-
你必须在两个不同的文件中有文件名吗?为什么不将它们放在 1 个文件中?似乎您想批量执行
ren file1 file2,如果您已经知道文件名是什么,只需创建一个以空格分隔的文件。即file1.txt file2.txt并做for /f "tokens=1,2" %%i in (names.txt) do ren "%%i" "%%j" -
我尝试使用
for /f "tokens=1,2" %%i in (test.txt) do ren "%%i" "%%j"并没有发生任何事情,我错过了一行吗? -
你在
test.txt中有两个文件名?您要重命名的文件是否与脚本位于同一目录中? -
是的,我愿意,test.txt 就是这样:dummy replacement,我有一个名为 tmp_dummy.jpg 的文件。它说找不到文件。
-
不,那样不行。如果您想更换零件,那么您问的问题不正确。让我补充一下。
标签: batch-file rename batch-rename