2013-03-20 69 views
1

我需要運行bat文件將每個子文件夾中的照片重命名爲子文件夾名稱,並將所有照片複製到新文件夾。每個子文件夾只包含一張照片。在每個子文件夾中運行bat cmd失敗

我想寫一個批處理文件來完成這項任務,因爲有很多子文件夾,但是,我只能成功地將照片複製到最後一個子文件夾中。

子文件夾按照從「00000001」開始的編號順序命名。

我發現照片被重新命名爲相同的,因此只能複製一張照片。

這裏是我的代碼:

md "D:\photo" 

for /r %%d in (.) do (cd %%d 
for /r %%* in (.) do (set CurrDirName=%%~n* 
echo %CurrDirName% 
ren "*.jpg" "%CurrDirName%.jpg" 
copy *.jpg "D:\photo")) 

請指點,這樣我可以修改我的代碼,做我願意做成功的東西,非常感謝!

EDIT更多的細節

在CMD線,例如該程序在子foler運行 「00000127」 組CurrDirName = 00000127 但呼應%CurrDirName%,示出00000128這是最後一個子文件夾和每個子文件夾返回00000128但不是CurrDirName

回答

1

試試這個&如果輸出正常,則刪除echo

@echo off &setlocal 
set "destination=d:\photo" 
md "%destination%" 2>nul 
for /d /r %%d in (*.*) do (
    pushd "%%d" 
    for %%i in (*.*) do echo copy "%%~i" "%destination%\%%~nd.jpg" 
    popd 
) 
endlocal 

必須有只有一張照片在每個子文件夾!

+0

非常感謝您!有用! – user1484319 2013-03-20 07:48:59