バッチファイル(tasklist)でプロセスを監視し、
起動していれば自動的に終了、起動していなければ強制的に起動するバッチファイルを作成しました。
※プロセスの終了はうまくいきますが、プロセスの起動は実行先のプログラムが起動しても先に進まず待ちの状況になっています。
起動したプログラムを手動で終了してやれば先に進むのですが、それではせっかく起動したプログラムの意味がありません。
・start パス名
・call パス名
・フルパス
の3パターンで試してみましたが、startはコマンドプロンプトが起動するだけ、callとフルパスはプログラムが起動して先に進まなくなるという状況です。
対応方法を教えてください。
start "C:\Program Files\foo\bar.exe"
のようにして起動しようとしていませんか?
startコマンドは、"" で囲んだ最初の引数はタイトルバーに表示させる文字列を指定する物です。
なのでこの場合は、
start "" "C:\Program Files\foo\bar.exe"
のようにしましょう。
start calc
みたいに "" で囲む必要が無い場合はちゃんと起動するんですけどね。
ちなみに、call コマンドやフルパス直指定は start /wait 相当みたいなのでそういう挙動になりますね。
管理者権限が必要でUACダイアログが出るようなプログラムの場合
runasを使ってみてください