2016-01-21 129 views
0

我試圖遞歸地將給定目錄中的所有文件和文件夾重命名爲當前命名的任何大寫版本。潛伏已經讓我走得這麼遠:使用BATCH遞歸重命名給定目錄中的文件和文件夾

@echo off 
setlocal enableDelayedExpansion 

pushd F:\ 

for %%f in (*) do (
    set "filename=%%~f" 

    for %%A in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
     set "filename=!filename:%%A=%%A!" 
    ) 
    ren "%%f" "!filename!" >nul 2>&1 
) 
endlocal 

但是,它似乎並沒有遞歸地工作。有關如何解決此問題的任何建議?

回答

2

變化

for %%f in (*) do (
    set "filename=%%~f" 

for /r %%f in (*) do (
    set "filename=%%~nxf" 

遍歷整個樹,並簡單地分配名和擴展名的%%ffilename

注意

for /r "F:\" %%f in (*) do (

將開始在引用目錄名搜索。

+0

確定,所以整個代碼,看起來像 「關閉@echo SETLOCAL enableDelayedExpansion 用於/ R F:\ %% F IN(*)做( 集 「文件名= %%〜NXF」 (%% A)(%% A)( ) ) ) ENDLOCAL」 – GentlemanS

相關問題