批处理 - 对目录中的文件进行排序和重命名

时间:2016-08-11 04:06:28

标签: batch-file cmd

我环顾四周,有很多帖子与此非常相似,但我似乎无法找到适合我需要的答案。

我有一个包含不同扩展名的文件列表,我想将其重命名为数字。例如

SomeFileName1.jpg
SomeFileName2.gif
SomeFileName3.mkv

更改为:

1.jpg
2.gif
3.mkv

我想保持扩展名一致。只有名称应更改为1,2,3等。

前段时间我发现了一些重命名所有文件的代码(不再有代码),但是它以错误的顺序重命名。例如,“SomeFileName3.mkv”变为“1.mkv”而不是“3.mkv”。我不确定我是否需要先以某种方式对它们进行排序?我不是很擅长这种事情,所以我真的可以使用一些帮助。感谢

1 个答案:

答案 0 :(得分:0)

使用for循环处理所有文件。使用dir根据需要对文件进行排序。使用计数器。使用delayed expansion使计数器正常工作。

@echo off
setlocal enabledelayedexpansion
set count=0
for /f "delims=" %%a in ('dir /b /on /a-d') do (
  set /a count +=1
  ECHO ren "%%a" "!count!%%~xa"
)

有关详细信息,请参阅for /?dir /?set /?

如果输出满足您的要求,请移除ECHO以设置ren命令。