用批处理实现将文件以数字重命名的代码

时间:2021-05-22

要求:
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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章