重命名文件的批处理脚本

时间:2012-07-05 18:46:11

标签: vbscript batch-file

我已经彻底查找了一个可以执行此操作的脚本,因为我知道问题已经被提出了......但我对编程知之甚少。我有66个文件夹,每个文件夹包含6个以_0,_1,... _ 5结尾的文件。示例文件名是DSC_7789 Panorama_cube_0。我需要一个脚本,我可以在每个文件夹上运行,用_f代替_0,用_r代替_1,用_b代替_2,用_l代替_3,用_u代替_4,用_d代替_5。因此,DSC_7789 Panorama_cube_0将更改为DSC_7789 Panorama_cube_f。我实际上已经完成了所有这一切......这花了一整天。任何人都可能指出我的写作方向吗?我假设这将在visual basic中运行。谢谢!

1 个答案:

答案 0 :(得分:1)

REN命令非常有限,但在您的情况下,只需要它就可以了。

重命名当前目录中的文件:

ren *_0 *_f
ren *_1 *_r
ren *_2 *_b
ren *_3 *_l
ren *_4 *_u
ren *_5 *_d

重命名当前目录及其所有子文件夹中的所有文件(递归):

for /d /r %%F in (.) do (
  ren "%%~fF\*_0" *_f
  ren "%%~fF\*_1" *_r
  ren "%%~fF\*_2" *_b
  ren "%%~fF\*_3" *_l
  ren "%%~fF\*_4" *_u
  ren "%%~fF\*_5" *_d
)

重命名以特定文件夹为根的所有文件:

for /d /r "c:\your\root\here" %%F in (.) do (
  ren "%%~fF\*_0" *_f
  ren "%%~fF\*_1" *_r
  ren "%%~fF\*_2" *_b
  ren "%%~fF\*_3" *_l
  ren "%%~fF\*_4" *_u
  ren "%%~fF\*_5" *_d
)


修改

对于任何有兴趣的人,我终于发现并记录了Windows RENAME如何处理通配符的规则。见How does the Windows RENAME command interpret wildcards?。我最初在StackOverflow上发布了Q& A,但它已迁移到SuperUser。