用批处理实现将文件以数字重命名的代码
发布时间:2016-12-28 来源:查字典编辑
摘要:要求:1、不能改变a.txt内容的顺序2、将当前目录下的所有jpg文件以序号的形式重命名如:从1-163、如果有16个文件,必须重命名为1-...
要求:
1、不能改变a.txt内容的顺序
2、将当前目录下的所有jpg文件以序号的形式重命名如:从1-16
3、如果有16个文件,必须重命名为1-16,不允许出现16之后的序号
a.txt内容:
复制代码 代码如下:
2.jpg
1.jpg
a.jpg
5ww.jpg
c.jpg
f.jpg
rty.jpg
3.jpg
11.jpg
b.jpg
6.jpg
e.jpg
8.jpg
111.jpg
7.jpg
30.jpg
a.txt中的内容其实就是当前文件夹下的jpg文件列表。
要求将当前文件夹里的所有jpg文件以序号的形式重命名。
但只能从a.txt获取当前文件夹里的所有jpg的文件名。
以序号重命名文件,陷阱重重,但如果用dir或for等命令来获取文件名的话,获取的先后次序会有一定规律,导致有些问题不能体现出来
复制代码 代码如下:
@echoon
setlocalenabledelayedexpansion
setn=0
setn1=0
for/f"tokens=*"%%ain(a.txt)do(
set/an+=1
ren%%at!n!.jpg
)
:loop
set/an1+=1
rent%n1%.jpg%n1%.jpg&&goto:loop
exit
第二种方法
好像可以更简单点
复制代码 代码如下:
@echooff
ren*.jpgt*.jpg
setlocalenabledelayedexpansion
for/f"delims="%%ain('dir/b"t*.jpg"')do(
setstr=%%a&setstr=!str:~1!
ren"%%a""!str!"
)
pause