- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:バッチファイルが動かない)
バッチファイルが動かない
このQ&Aのポイント
- バッチ初心者です。バッチファイルが動かないという問題についてご教授ください。
- 特定のプロセスが存在すれば、再度5秒後にチェックして存在すればOKと表示したいのですが、エラーが発生しています。
- XPで動かしているのですが、何が間違っているのかわかりません。アドバイスをお願いします。
- みんなの回答 (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
お礼
回答ありがとうございます。 errorlevel,goto で分枝させることで解決しました。 中間ファイルもなくなりシンプルに纏めることができました。 改めて見ると、ヘルプを見て解決できそうな質問でしたね。 恥ずかしい限りです。 ありがとうございました。