平時喜歡拍照的朋友會有一個煩惱,照片拍得多了,想找到某張自己想要的照片會很麻煩,如果能夠把自己每次拍得照片檔案的檔案改成一些有意義的名字,那麼以後再尋找的時候會很方便的。
但這種重複工作如果手工做會耗費大量的時間,如果能夠自動作那在方便不過了。我也曾經用過很多改名的軟體但是由於效率或者其他問題,往往用過幾次就放棄了。
最近工作原因使用了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.log10 11 REM Get file list12 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!+120 SET nm=00000!x!21 22 REM file rename23 ren %%a.%%b PIC!nm:~-3!.JPG24 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雖然很“古老”了,但是善加利用其實可以讓我們的很多工作更加便利的。