バッチファイルの処理が先に進まない


バッチファイル(tasklist)でプロセスを監視し、
起動していれば自動的に終了、起動していなければ強制的に起動するバッチファイルを作成しました。
※プロセスの終了はうまくいきますが、プロセスの起動は実行先のプログラムが起動しても先に進まず待ちの状況になっています。
起動したプログラムを手動で終了してやれば先に進むのですが、それではせっかく起動したプログラムの意味がありません。
・start パス名
・call パス名
・フルパス
の3パターンで試してみましたが、startはコマンドプロンプトが起動するだけ、callとフルパスはプログラムが起動して先に進まなくなるという状況です。
対応方法を教えてください。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2018/08/03 09:28:27
  • 終了:2018/08/10 09:30:05

ベストアンサー

id:siachan No.1

siachan回答回数84ベストアンサー獲得回数172018/08/04 10:23:06

start "C:\Program Files\foo\bar.exe"

 のようにして起動しようとしていませんか?

 startコマンドは、"" で囲んだ最初の引数はタイトルバーに表示させる文字列を指定する物です。

 なのでこの場合は、

start "" "C:\Program Files\foo\bar.exe"

 のようにしましょう。

start calc

 みたいに "" で囲む必要が無い場合はちゃんと起動するんですけどね。

 ちなみに、call コマンドやフルパス直指定は start /wait 相当みたいなのでそういう挙動になりますね。

id:keijun5145

ありがとうございます。
対応できました。

2018/08/21 10:06:14
  • id:degucho
    「起動したプログラムを手動で終了してやれば先に進む」の状況が良くわかりませんが
    管理者権限が必要でUACダイアログが出るようなプログラムの場合
    runasを使ってみてください

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません