[DOS]批次檔的妙用

當收下一部漫畫,正要開始閱覽時,卻發現裡面頁數有點不對頭,跳躍得很嚴重。翻開檔案夾才發現,原來檔名沒有依照既定格式編排,如原本應該是001.jpg,卻命名為1.jpg,這樣會讓很多圖形閱覽器無從判別,如MangaMeeyaCE、ACDSee等。所以當務之急,便是要先把圖片改個名,討個吉利。

而改名這種動作,當然可以用最土法煉鋼的方式--一個一個手動改,但這對我們忙忙碌碌地現代人而言,太不符合經濟效益,所以提前否決!

第二種辦法,則是使用圖形閱覽器的內建批次改名功能,這種作法當然比前一種便利許多,但仍有一點麻煩,譬如說你沒辦法一次全改,需要先把圖片分類,編號0~9的檔案前面多加兩個零,編號10~99的則前面多加一個零。以此類推,而且這樣做也只能一次修改一本漫畫,效率上不是很優,所以這邊會推薦用下面介紹的第三種方法。

第三種辦法,即是用所謂的批次檔。

FOR /L %%i in (0,1,9) do ren "0 (%%i).jpg" "0 (00%%i).jpg"
FOR /L %%i in (10,1,99) do REN "0 (%%i).jpg" "0 (0%%i).jpg"

把以上這兩行複製到一份新開的文件檔,或許做一些簡略修改,譬如說檔名格式跟上述不太一致的時候。接著副檔名改為.bat,然後放到欲修改的漫畫檔案夾中,點擊兩下執行後便可看到成果。

如何?方便又快速,實在是居家旅行、出門在外、殺人滅口的必備良藥呀!

 

稍微解釋一下這兩行的運作:

FOR,即迴圈
%%i,設定變數i,原本在dos視窗中只要輸入%i,但因為在批次檔中,%是特殊字元,所以要用%%i來告訴批次檔這個是變數來的。
(0,1,9),從0開始,每次跳1,巡行到9為止。
ren,改名指令,也可以打成rename。
"0 (%%i).jpg",指得是檔名為0 (0).jpg、0 (1).jpg..........這些。加引號是因為檔名中有空格,所以加引號讓批次檔好作出正確的判斷。沒有打路徑的意涵,就是欲指在目前批次黨的位置操作。
"0 (00%%i).jpg",指得是檔名為0 (000).jpg、0 (001).jpg........這些。

 

整個的意義為:

若檔名為0 (0).jpg ~ 0 (9).jpg,則改檔名為 0 (000).jpg ~ 0 (009).jpg
若檔名為0 (10).jpg ~ 0 (99).jpg,則改檔名為 0 (010).jpg ~ 0 (099).jpg

One response to “[DOS]批次檔的妙用” ;

匿名 提到...

很實用!

張貼留言