2013-12-13 98 views
0

我有一個批處理文件重命名的文件夾中發現一系列的名字,如0001.JPG 0002.jpg 003.JPG如何爲每個子文件夾

這個批處理文件的代碼是所有圖片運行命令:

set cnt=0 
FOR /R d:\all\photos1\ %%a in (Graphic*.jpg) do call :renfile "%%a" 
goto :eof 

:renfile 
set /a cnt += 1 
set padCnt=0000%cnt% 
ren %1 %padCnt:~-4%%~x1 

的問題是,我有我的父文件夾內的多個文件夾和子文件夾「所有」,所以我不得不爲每個文件夾中的批處理文件,所以我需要做一個批處理文件,該文件將着眼於我的父文件夾「all」中的所有文件夾和子文件夾,然後運行我提到的重命名其中的圖片的命令。

回答

1

你試過

FOR /R d:\all\ %%a in (Graphic*.jpg) do call :renfile "%%a" 

(爲了測試,我會很可怕的誘惑ECHOren命令)


對於未說明覆位的,編號的問題。 ...

set lastdir=: 
FOR /R d:\all\ %%a in (Graphic*.jpg) do call :renfile "%%a" 
goto :eof 

:renfile 
if NOT "%lastdir%"=="%~p1" set /a cnt=0&set "lastdir=%~p1" 
set /a cnt += 1 
set padCnt=0000%cnt% 
ren %1 %padCnt:~-4%%~x1 

(air code - should work)

+0

是它的工作原理,但問題是,序列號不會被重置爲每個文件夾,我想每個文件夾都有自己的系列從開始0001.JPG名字...... – user1921704

+0

感謝你的努力,但數字的復位不工作但仍然沒有復位數字 – user1921704

+0

是工作 - 兩個毛刺。首先,我要離開了'photos1 \'的'FOR/R',我會省略了'IF'行'NOT'。現在固定... – Magoo

相關問題