
少し前に、
pingが通るか否かではerrolevelが立たないというので、
findstrを教わりました。
ただ、findstrだけを動かしたとき(test2)には正しく動くのですが、
前に別のロジックがある(test1)と必ずerrorlevelが「0」になるみたいです。
原因を教えて下さい。
test1は以下のとおりです。
echo off
ping 192.168.0.9 > obj8
for %%i in (obj8) do (if %%~zi==0 (
echo ping-kekka-nashi
) else (
ping 192.168.0.9 | findstr TTL
if %errorlevel%==0 (
echo ping kekka-ari ok
) else (
echo ping-kekka-ari ng
)))
test2は以下のとおりです。
@echo off
ping 192.168.0.9 | findstr TTL
if %errorlevel%==0 (
echo ping-kekka ok
) else (
echo ping kekka ng
)
※実際には、192.168.0.9は存在しないので、pingは通りません。
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
%による環境変数展開は、命令実行前に展開されてから実行されます。
つまり、test1のfor文は、for文実行の直前でERRORLEVELが0の場合、
for %%i in (obj8) do (if %%~zi==0 (
echo ping-kekka-nashi
) else (
ping 192.168.0.9 | findstr TTL
if 0==0 (
echo ping kekka-ari ok
) else (
echo ping-kekka-ari ng
)))
と書き換わってから、forの実行が始まります。
言い換えると、for の開始前と開始後で値が変わる変数の参照を%で行うことは出来ません。なので、%を使わないif文を書きます。
if errorlevel 1 ・・・・ errorlevel が1以上なら~~
if not errorlevel 1 ・・・上記の否定、つまり、errorlevelが0なら~~
↓
echo off
ping 192.168.0.9 > obj8
for %%i in (obj8) do (if %%~zi==0 (
echo ping-kekka-nashi
) else (
ping 192.168.0.9 | findstr TTL
if not errorlevel 1 (
echo ping kekka-ari ok
) else (
echo ping-kekka-ari ng
)))
早速有り難うございました。
ご説明、良く分かりました。
そんなこととはつゆ知らず、のたうち回っていました。
スッキリしました。
勿論訂正して実行、スンナリです。
お世話になりました。
大感謝です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux 次の要件を満たすにはどのように修正したらよろしいでしょうか 1 2022/11/24 20:57
- その他(プログラミング・Web制作) 単純なコマンドプロンプトが動きません。 2 2022/04/19 15:21
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- 日本語 ドゥーイングとピンポンはどちらも語末が「ŋ」なのにカタカナの表記が違うのか 2 2022/07/14 08:41
このQ&Aを見た人はこんなQ&Aも見ています
-
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
バッチファイルでpingの結果を参照したい
その他(プログラミング・Web制作)
-
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
-
4
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
5
バッチ処理でファイルの中身を変数に入れるやり方
その他(プログラミング・Web制作)
-
6
Windowsのバッチファイルで正規表現の置換方法について…
Windows 10
-
7
テキストファイルから最終行の抽出
Windows Me・NT・2000
-
8
コマンドプロンプトで変数が数字であることを判定する方法
その他(プログラミング・Web制作)
-
9
コマンドプロンプトのエラーについて
その他(パソコン・周辺機器)
-
10
バッチ処理 特定の文字以降をリネーム
Ruby
-
11
DOSコマンドのダブルクォーテーションの扱い
その他(プログラミング・Web制作)
-
12
バッチファイルでサーバーのファイルをクライアントへコピーしたい
その他(コンピューター・テクノロジー)
-
13
Dosブロンプトでtabを出力したい
その他(プログラミング・Web制作)
-
14
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
15
コマンド実行結果を環境変数に代入する方法ありますか
iOS
-
16
不明なコマンドです(FROM")。行の残りは無視されました。 のエラー"
Oracle
-
17
コマンドプロンプトによるフォルダ内のファイル存在有無
UNIX・Linux
-
18
DOSバッチで文字数カウント
Windows 10
-
19
selectした結果の余計な余白を取るにはどうしたらよいのでしょうか
Oracle
-
20
コマンドプロンプトでごみ箱へファイルを移動させるにはどうすればよいのでしょうか?
Windows Vista・XP
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
プログラミングを学べる!?進化している子どものおもちゃについて専門家に聞いた!
プログラミングを学べるレゴブロックがあることはご存知だろうか。レゴに限らず最近のおもちゃには、プログラミングの要素がどんどん取り入れられているようだ。「教えて!goo」にも、「プログラミングを学べる子供...
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
バッチファイルでpingの結果を...
-
switch()文で値の大小比較
-
shシェルスクリプト 空白行の...
-
findstrのerrorlevel
-
コマンドプロンプト フォルダ内...
-
Windowsのsetコマンドでの小数...
-
バッチファイルで、全てのウィ...
-
PHPで$_GET[’m’]の意味が分か...
-
syntax error, unexpected 'ech...
-
ISSETで変数に値が入っていない...
-
ゼロとNULLを区別して number_f...
-
hiddenを使っているのに、表が...
-
「取得先」という表現について
-
EXCEL、マクロ-改ページ行番号...
-
Excel VBA:特定の文字列以降(...
-
【C#】DataGridViewの最大列数...
-
コンビニで住民票を取得した場...
-
excel access連携 このテーブル...
-
現在時刻をyyyymmddhhmmss形式...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
バッチファイルでpingの結果を...
-
shシェルスクリプト 空白行の...
-
switch()文で値の大小比較
-
findstrのerrorlevel
-
小数点以下0の非表示
-
syntax error, unexpected 'ech...
-
pdftkを使った処理をバッチファ...
-
phpでcookieがうまく保存されない
-
コマンドプロンプト フォルダ内...
-
XMLのタグの有無をPHPで判定し...
-
ゼロとNULLを区別して number_f...
-
バッチファイルで、全てのウィ...
-
DBのハッシュ化したパスワード...
-
Windowsのsetコマンドでの小数...
-
オブジェクトの中身の判定(PHP)
-
bashの関数の引数にスペースが...
-
訪問回数で表示するFLASHを変える
-
batファイルでPC名称の変更
-
print と echo の違い
おすすめ情報