批处理文件重命名 - 查找和替换

时间:2014-05-20 14:59:26

标签: batch-file cmd batch-rename

我尝试编写Windows批处理文件,根据原始名称重命名一组文件。我本质上想要做的是在文件名中查找文本并将其替换为其他文本。 例如,如果文件具有命名结构" Family Christmas 001.jpg"我可能想把它改成"照片 - Xmas 001.jpg"。即取代"家庭圣诞节"与"照片 - 圣诞节"。这只是一个例子。

我从这个网站的用户dbenham那里找到了一段代码,它几乎完全符合我的要求。在这个例子中,他正在替换" 120x90"在文件名中" 67x100" 这是代码:

@echo off
setlocal enableDelayedExpansion
for %%F in (*120x90.jpg) do (
  set "name=%%F"
  ren "!name!" "!name:120x90=67x100!"
)

任何人都可以帮我修改这段代码,使其处理文件名中的空格吗?

由于

1 个答案:

答案 0 :(得分:1)

FOR声明中的所有引号都是错误的 - 请按照您的示例进行操作:

@echo off
setlocal enableDelayedExpansion
for %%F in ("Family Christmas*.jpg") do (
  set "name=%%F"
  ren "!name!" "!name:Family Christmas=Photos - Xmas!"
)