• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:バッチファイルが動かない)

バッチファイルが動かない

このQ&Aのポイント
  • バッチ初心者です。バッチファイルが動かないという問題についてご教授ください。
  • 特定のプロセスが存在すれば、再度5秒後にチェックして存在すればOKと表示したいのですが、エラーが発生しています。
  • XPで動かしているのですが、何が間違っているのかわかりません。アドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • 777_kenyu
  • ベストアンサー率68% (22/32)
回答No.1

0の使い方が誤っていますというのはC:\Temp\cnttmp.txtの中身が想定外の物になっているのだと思います。バッチファイルの多重起動などで同じファイルに同時にアクセスしてませんか? 解決策ですが、文字列を含む行数との比較ではなく、 文字列を検索した結果のerrorlevelをみてはどうでしょうか。 中間ファイルを作らなくてよくなります。 05 tasklist | find /c "【何かプロセス】" > %tasktmp% 06 for /f %%a in (' type %tasktmp% ') do set cnttmp=%%a 07 08 if %cnttmp% neq 0 (  ↓ tasklist |find "何かのプロセス" > NUL if errorlevel 1 goto skip echo WSciript.Sleep 5000 > %vbstmp% … :skip exit

wtdump
質問者

お礼

回答ありがとうございます。 errorlevel,goto で分枝させることで解決しました。 中間ファイルもなくなりシンプルに纏めることができました。 改めて見ると、ヘルプを見て解決できそうな質問でしたね。 恥ずかしい限りです。 ありがとうございました。

関連するQ&A