Batch file 如何将DOS批处理文件从1.jpg重命名为0001.jpg?

Batch file 如何将DOS批处理文件从1.jpg重命名为0001.jpg?,batch-file,dos,Batch File,Dos,如何编写DOS批处理文件,以便从中重命名任意子目录中的多个文件 1.jpg 10.jpg 11.jpg 12.jpg 2.jpg 3.jpg 4.jpg 5.jpg 6.jpg 7.jpg 8.jpg 9.jpg 这不是合乎逻辑的安排,我想这样做 1.jpg 2.jpg 3.jpg 4.jpg 5.jpg 6.jpg 7.jpg 8.jpg 9.jpg 10.jpg 11.jpg 12.jpg 在它前面加了000,如>> 0001.jpg 0002.jpg 0003.jpg 0004.jpg

如何编写DOS批处理文件,以便从中重命名任意子目录中的多个文件

1.jpg
10.jpg
11.jpg
12.jpg
2.jpg
3.jpg
4.jpg
5.jpg
6.jpg
7.jpg
8.jpg
9.jpg
这不是合乎逻辑的安排,我想这样做

1.jpg
2.jpg
3.jpg
4.jpg
5.jpg
6.jpg
7.jpg
8.jpg
9.jpg
10.jpg
11.jpg
12.jpg
在它前面加了000,如>>

0001.jpg
0002.jpg
0003.jpg
0004.jpg....
因为你的名字不包含任何非字母数字字符,所以这是一个相当简单的任务

更改为所需的子记录,将数字1..999放入循环中,以“000”作为前缀,然后获取最后4个字符并进行重命名

我包含了一个
ECHO
,因此只需报告操作。删除
ECHO
关键字以执行重命名

如果原始名称不存在,则
IF EXIST
选通会停止尝试重命名(这将生成一条难看的错误消息),如果需要,可以再次选通该选通,以防止在新文件名已存在时尝试重命名

@echo off
setlocal EnableDelayedExpansion
for %%a in (*.*) do (
   set name=0000%%a
   if not exist !name:~-8! ECHO ren %%a !name:~-8!
)
因为你的名字不包含任何非字母数字字符,所以这是一个相当简单的任务

更改为所需的子记录,将数字1..999放入循环中,以“000”作为前缀,然后获取最后4个字符并进行重命名

我包含了一个
ECHO
,因此只需报告操作。删除
ECHO
关键字以执行重命名

如果原始名称不存在,则
IF EXIST
选通会停止尝试重命名(这将生成一条难看的错误消息),如果需要,可以再次选通该选通,以防止在新文件名已存在时尝试重命名

@echo off
setlocal EnableDelayedExpansion
for %%a in (*.*) do (
   set name=0000%%a
   if not exist !name:~-8! ECHO ren %%a !name:~-8!
)
您可以在此查看一种更通用的方法:当文件名的数字前可能有一个固定部分时


您可以在此查看一种更通用的方法:当文件名的数字前面可能有一个固定部分时。

也谢谢您,Aacini:D也谢谢您,Aacini:D