平時喜歡拍照的朋友會有一個煩惱,照片拍得多了,想找到某張自己想要的照片會很麻煩,如果能夠把自己每次拍得照片文件的文件改成一些有意義的名字,那么以后再查找的時候會很方便的。
但這種重復工作如果手工做會耗費大量的時間,如果能夠自動作那在方便不過了。我也曾經用過很多改名的軟件但是由於效率或者其他問題,往往用過幾次就放棄了。
最近工作原因使用了window下的bat,發現用它來寫一些想改名這樣的程序比較方便,而且效率要比很多工具要高效、靈活。
啰嗦了這么的多還是給大家分享一下我的實現代碼吧!
1 @ECHO OFF 2 REM 變量延遲
3 SETLOCAL ENABLEDELAYEDEXPANSION 4 5 REM File List 6 SET LIST=list.txt 7 8 REM Log File 9 SET LOG=exec.log 10 11 REM Get file list 12 IF EXIST "%LIST%" ( 13 del %LIST% >> %LOG% 14 ) 15 dir/b/o-d/a *.jpg >> %LIST% 16 17 FOR /F "tokens=1,2 delims=." %%a IN (%LIST%) DO ( 18 19 SET /a x=!x!+1 20 SET nm=00000!x! 21 22 REM file rename 23 ren %%a.%%b PIC!nm:~-3!.JPG 24 ECHO ren %%a.%%b PIC2!nm:~-3!.JPG >> %LOG% 25 26 ) 27 28 ECHO Success!!! >> %LOG%
批處理執行后的效果:
exec.log是bat文件執行后的log文件。
list是原來文件的列表。
其實原理很簡單,就是用DOS的DIR命令獲取當前目錄下的文件列表
dir/b/o-d/a *.jpg >> %LIST%
利用Dos的重定向方法將列表導入到list.txt文件中,之后循環這個列表完成文件名的重命名。
這里只實現了圖片文件的重命名,其實朋友們稍加改動就可以實現其他類型文件的重命名。這里只是拋磚引玉大家可以自由發揮,Bat雖然很“古老”了,但是善加利用其實可以讓我們的很多工作更加便利的。