プロセスのファイル (現在は C:\test.txt) を書き込むスクリプトがあります (事前定義されたリストからプロセスをチェックします)。
次に、他のコードを実行します (ここで何が行われるかは重要ではありませんが、これらのプロセスを終了することも含まれます)。
私の問題は、スクリプトのこの時点で、終了したプロセスを再起動できるようにする必要があることですが、以前に実行していた cmd パラメータを使用してそれらをロードする必要があります。
test.txt ファイルは次のようになります。
"C:\folder1\folder2\application1.exe" param1
"C:\folder1\folder2\folder3\application2.exe" param1 param2
"C:\folder4\application3.exe"
"C:\folder1\folder2\folder3\application4.exe" param1 param2 param3 param4
etc..
for ループを使用してファイルから行を取得し、それらを実行しようとしました。
for /f "usebackq tokens=1,* delims= " %%C in (C:\test.txt) do (
%%C %%D
)
これは問題ありませんが、スクリプトは次のプロセスをロードする前に最初のプロセスが完了する (つまり、再び終了する) のを待ち、これらのプロセスは終了しません。
使ってみた
start %%C %%D
しかし、ファイルパスを含む新しいCMDウィンドウをロードし、%Dからの名前でファイルを実行しようとします
使用;
start %%C %%C %%D
うまくいくように見えますが、その理由はわかりません。これは正しい方法ではないと確信しています。
なぜこれがうまくいき、他の人はうまくいかないのか、そしてこれを行う適切な方法があれば誰でも説明できますか??
ありがとう