私はバッチファイル内に、他のすべてのドライブ(フラッシュドライブなどを含む)のバッチファイルの先頭にコールを追加するルーチンを作成しようとしています。私はこれを行うためにネストされたFOR関数を使用してきました。最初の部分は、appendという変数を設定して、ドライブ内のすべてのバッチファイルに実際に追加します。 2番目の部分はfsutilを使用してすべてのドライブを使用し、各出力を 'cd'でカスケードして、append変数を呼び出して実際の追加を行います。すべてのドライブが追加されるバッチファイルがチェックされていることを確認することです。 変数をこのようなコマンドの文字列に設定できますか? 私は別のものに埋め込まれているので、多くのFOR関数が誤動作を作成しますか? 変数を設定し、FOR関数のトークンを使用するのは正しいですか? 実際の追加プロセスはスムーズに行われますか? 最後に、ディスクを挿入していないディスクドライブにcdをセットし、 "ディスクを挿入する"ポップアップを引き起こすなど、自動化を妨げるような中断がありますか?あなたはこのようなもので以下のループを行うことができバッチファイル 'for'と混乱を追加する
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%
)
ファイルの追加を回避するにはどうすればよいですか? – user1374083
@ user1374083、1つの方法は、 ".cmd"拡張子で名前を変更することです。この方法ではまだ.batのように実行されますが、スクリプトには巻き込まれません。 – Marc
私はそれを修正したと思う - 私は2番目のテキストファイルを作成し、そのテキストファイルに自身の内容を印刷し、その後、追加が完了すると、プログラムに元のテキストをコピーし、テキストファイルを削除します。これは使えますか? – user1374083