質問: バッチファイル内のすべてのサブフォルダーでコマンドを実行します 次のようなバッチファイルがあります。if exist icon.ico ( attrib -s -h -r desktop.ini echo f | xcopy /h /y "%~dp0desktop.ini.txt" desktop.ini attrib +s +h +a desktop.ini ) これは私のニーズに完全に対応しています。私の質問は、これをすべてのサブフォルダーで実行するにはどうすればよいですか?
回答: バッチファイルのすべてのサブディレクトリでコマンドを実行するにはどうすればよいですか?これには_for /r_を使用できます。次のバッチファイルを使用します。_for /r "starting_directory" %%a in (.) do ( pushd %%a if exist icon.ico ( attrib -s -h -r desktop.ini echo f | xcopy /h /y "%~dp0desktop.ini.txt" desktop.ini attrib +s +h +a desktop.ini ) popd ) _for/r-ファイルをループします(recurseサブフォルダー) 構文 for /r [[drive:]path] %%parameter in (set) do command キー _drive:path_:ファイルが配置されているフォルダツリー。 set:1つ以上のファイルのセット。ワイルドカードを使用する必要があります。 (set)がピリオド文字(。)の場合、forはすべてのフォルダーをループします。 command:コマンドラインパラメータを含む、実行するコマンド。 %% parameter`:置換可能なパラメータ:バッチファイルで%% gを使用します(コマンドライン%gで) ソース / rの場合 -ファイルをループします(サブフォルダーを繰り返します)。参考文献 windows cmdコマンドラインのa-zインデックス -windowsコマンドラインに関連するすべてのものの優れたリファレンス。 for/r -ファイルをループします(recurseサブフォルダー)。