- 締切済み
pingの条件処理について。
宜しくお願いします。 ping を利用して、その結果を条件判断し、ログに出力するバッチを作成してみました。 OS:xp、Windows Server 2003 ***TEST.bat*** rem 変数セット set log=L:\log\test.log set machine=TESTOS rem 疎通確認(50回) ping -n 50 %machine% rem 疎通確認結果の条件処理判定 if errorlevel 1 ( echo %machine% のpingが通りません。 >> %log% ) else ( echo %machine% のpingが通りました。 >> %log% ) ***TEST.bat*** ですが、これで実行すると、 何故か最初のping処理(50回)しか行われず、その後の条件判断(if ~)が実行されません。 (%log%にも出力されません) これを解決するには、どのように修正すれば良いのでしょうか? 上手く稼働確認が出来ず、困っています。 お手数をお掛けしますが、ご教授を宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- dscripty
- ベストアンサー率51% (166/325)
次に確認するとしたら、バッチファイルのコマンドを一行ずつコマンドプロンプトの打ち込んで、実行してみることかな?
- maesen
- ベストアンサー率81% (646/790)
前の回答にも書きましたが、バッチ自体に問題はないように思います。 (私の環境でも検証しました) よければ切り分けのため以下のことを実行して見て下さい。 echo onの状態で実行して、 rem 疎通確認結果の条件処理判定 この行は実行されますか?(実行と言ってもコメント文なのでエコーされるだけですが) また、 ping -n 50 %machine% を ping.exe -n 50 %machine% に変更したら状況が変化しますでしょうか? また、 ping -n 50 %machine% を rem ping -n 50 %machine% では状況が変化しますでしょうか?
お礼
maesenさん 確認ありがとうございます。 自分でも切り分け等をしても変わりませんでした。 また、ご教授して頂いた形で一旦修正し、バッチを実行しましたが、全ての方法で試してみても状況は変わりませんでした。(PING処理で終了し、ログ出力されません) バッチに問題が無いという事は、やはり環境に問題があるのでしょうか? または、このバッチをベースにロジックを追加なり修正する事で解決できるのでしょうか? 何度もお手数をおかけして申し訳ないです。
- maesen
- ベストアンサー率81% (646/790)
>ですが、これで実行すると、 >何故か最初のping処理(50回)しか行われず、その後の条件判断(if ~)が実行されません。 >(%log%にも出力されません) なんかおかしいですね。 echo onの状態でバッチの実行を見てもif文自体を通っていないように見えるということでしょうか。(判定が思っているのと違うということではなくて) このバッチでif文が実行すらされないのはおかしいですね。 試しに私の環境でmachine以外を全く同じ(ログの出力先も同じ)にして実行しましたが問題なく実行されていますね。 バッチの内容以外の環境になにか原因があるかもしれません。 ping.batがあるなんてことはないですよね。
お礼
maesenさん 回答ありがとうございます。 はい、ご指摘して頂いた事を確認しましたが、該当する箇所はありませんでした。 if文自体も通っていませんし、ping.batも存在しませんでした。 何か他の方法をご存知でしょうか? もしご存知でしたら、ご教授お願いします。 確認して頂きありがとうございました。
- dscripty
- ベストアンサー率51% (166/325)
ひとまず、 「何故か最初のping処理(50回)しか行われず、その後の条件判断(if ~)が実行されません。」 と判断する前に「>> %log%」を削除して実行してみてはどう?
お礼
dscriptyさん 回答ありがとうございます。 ご指摘して頂いた事で修正し確認してみましたが、現状は変わらずです。 何か他のロジックを追加しないとPINGでの条件処理は行えないのでしょうか? ご指摘ありがとうございました。
お礼
dscriptyさん 確認ありがとうございます。 教えて頂いた事を実行しましたが、現状は変わらずです。 引き続き、他の方法も模索してみます。 また、何か他の方法がございましたら、ご教授お願いします。 回答ありがとうございました。