【VS开发】cmd dos 批处理重命名文件

原文地址:http://hi.baidu.com/benchoi/item/c1f531f5f1367b0b85d2785b

批处理实现文件批量重命名并自动加递增序列号

有时我们想把一些图片批量重命名的时候,可能会想到用acdsee7.0以上的版本来实现。也有人可能会在我的电脑里,打开文件夹,全选图片文件,然后按着ctrl键不放,在第一个图片上右健单击重命名,放开左健,把文件的文件名了文件类型写好,如list.jpg。你写好文件名好,把鼠标住空白处一点,就批量改成了list(1).jpg、list(2).jpg、list(3).jpg这样。说实在的,我很讨厌生成的那个小括号,一点美感都没有。

用ACDSEE当然可以根据我的要的方法来重命名,但在我们没有装ACDSEE的时候,我们其实可以利用批处理的方法实现,将以下代码复制到记事本,保存为ren.bat,双击执行就OK啦!

@echo off&setlocal EnableDelayedExpansion 
set a=1 
for /f "delims=" %%i in ('dir /b *.jpg') do ( 
if not "%%~ni"=="%~n0" ( 
if !a! LSS 10 (ren "%%i" "list0!a!.jpg") else ren "%%i" "list!a!.jpg" 
set/a a+=1 

)

如果你要重命名的文件的类型为jpg图片,那么以下就是实现批量修改jpg图片的批处理语句!

如果是其它的文件类型,就相应把把 *.jpg    改成 *.文件后缀 就OK啦,如果文件名不想以list开始,就把list改掉就OK了。

其实懂点编程的人,还可以根据上面的语句来写出更多重命名的批处理。


---

1、按名称进行编号

1
2
3
4
5
6
7
8
9
10
@echo off
setlocal enabledelayedexpansion
for /f %%k in ('dir /ad /b'do (
set icount=0
for /f %%j in ('dir /a-d /b /on !cd!\%%k\*.jpg'do (
set /a icount=icount+1
echo 已改名%%j
ren %cd%\%%k\%%j %%k_!icount!.jpg
)
)

2、按文件大小进行编号

1
2
3
4
5
6
7
8
9
10
@echo off
setlocal enabledelayedexpansion
for /f %%k in ('dir /ad /b'do (
set icount=0
for /f %%j in ('dir /a-d /b /os !cd!\%%k\*.jpg'do (
set /a icount=icount+1
echo 已改名%%j
ren %cd%\%%k\%%j %%k_!icount!.jpg
)
)

3、按日期进行编号

1
2
3
4
5
6
7
8
9
10
@echo off
setlocal enabledelayedexpansion
for /f %%k in ('dir /ad /b'do (
set icount=0
for /f %%j in ('dir /a-d /b /od !cd!\%%k\*.jpg'do (
set /a icount=icount+1
echo 已改名%%j
ren %cd%\%%k\%%j %%k_!icount!.jpg
)
)



---

added by ZhangpY:

实在是头疼的一件事情,不太懂这个dos命令,居然一不小心弄了个一上午,也是醉了!

下面总结几个必须要加强的几个内容,否则总是会被这些小事儿给弄折了腰!

windows下的批处理文件的熟练掌握!

Linux下的批处理文件的熟练掌握!

Python工具的熟练掌握!


---

2016-9-21 11:24

张朋艺 pyZhangBIT2010@126.com


posted @ 2016-09-21 11:25  ZhangPYi  阅读(745)  评论(0编辑  收藏  举报