2017-05-16 19 views
0

類似の投稿がありますが、必要なものはカバーしていません。 特定のフォルダのすべてのファイルとサブフォルダの名前を変更して大文字にする必要があります。私は偉大であるこの記事を見つけただけで、ファイルやサブフォルダはありません:バッチスクリプトを使用してフォルダ内のファイルとサブフォルダの名前を再帰的に変更します。

Rename all files in folder to uppercase with batch

ノー喜びのためにネストをやってみました。マニュアルによると、/ Rはフォルダを再帰すると仮定していますが、何もしていません。試してみた/ D/Rでも運がない。だから私は以下のようなものを使用したいと思っていた:

@echo off 
setlocal enableDelayedExpansion 

pushd C:\MyFolder 

for /R /D %%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 

アイデア?

答えて

0

すべてのファイルのサブフォルダを取得するには、静的リストdir /B /S *を解析します。

の説明についてはfor /?を全部読んでください。

@echo off 
setlocal enableDelayedExpansion 

pushd C:\MyFolder 

for /F "delims=" %%f in ('dir /B /S *') do (
    set "filename=%%~nxf" 

    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 
) 
popd 
endlocal 

読むren /?同様:

Renames a file or files. 

RENAME [drive:][path]filename1 filename2. 
REN [drive:][path]filename1 filename2. 

Note that you cannot specify a new drive or path for your destination file. 
+0

これは美しいです!魅力のように動作します...私は実際にリストを印刷することを考えましたが、その後それらを解析するのに悩まされました! – DoctorB

関連する問題