2012-07-15 20 views
0

我期望通過添加字母字符的後綴批量重命名大量文件,但只能在特定範圍內。例如:文件126.pdf應重命名爲126A.pdf,文件127.pdf應重命名爲127B.pdf,文件128.pdf應重命名爲128A.pdf,文件129.pdf應重命名爲129B.pdf等。能夠做到這一點的現有軟件也受到讚賞。 謝謝!使用交替字母后綴批量重命名

+2

你不會解釋哪個規則用於決定選擇角色。順便說一句。 SO是編程問題的平臺,而不是軟件推薦。 – jeb 2012-07-15 09:56:11

+0

@jeb:從我如何閱讀這個問題,這個想法是交替地將一組固定的後綴應用於排序的文件列表。 – 2012-07-15 18:56:14

回答

0

您可以使用FOR循環來檢查每個單獨的文件名。

setlocal EnableDelayedExpansion 
for %%A in (*.pdf) DO (
    echo Filename=%%A 
    set name=%%~nA 
    set "prefix=" 
    if !name! == 123 set prefix=A 
    if !name! == 999 set prefix=B 
    echo rename "%%A" to "!name!!prefix!.pdf" 
    ren "%%A" "!name!!prefix!.pdf" 
) 
1
setlocal EnableDelayedExpansion 
rem Define the set of replacements 
for %%a in ("126=126A" "127=127B" "128=128A" "129=129B") do set %%~a 
rem Achieve the replacements 
for %%a in (*.pdf) do (
    if defined %%~Na (
     ren "%%a" "!%%~Na!.pdf" 
    ) 
) 

上一頁程序是基於您的要求給出的例子。也許如果你用另一種更精確的方式定義重命名規則,程序可能完全不同!

1

你可以嘗試以下方法:

@ECHO OFF 
SETLOCAL EnableDelayedExpansion 
SET suffixes=AB 
FOR %%I IN (*.pdf) DO (
    RENAME "%%I" "%%~nI!suffixes:~0,1!.*" 
    SET suffixes=!suffixes:~1!!suffixes:~0,1! 
) 

suffixes變量設置爲所有可能的後綴進行重命名使用的「陣列」。

在迭代文件時,會挑選數組中的第一個後綴以形成新名稱。然後後綴在數組中交換,所以另一個在下一次迭代中變成第一個。

該解決方案將使用任意數量的後綴。