「駑馬十駕」を信念に IT系情報を中心に調べた事をコツコツ綴っています。

Windowsバッチで数値比較をしようとして、if %a% > 10 のように書いたのに、なぜかうまく動かない…そんな経験はありませんか?

実はDOSバッチのif文では、><といった不等号は比較演算子として認識されません。本記事では、不等号が効かない理由と、**正しい比較演算子(GTR / LSS / GEQ / LEQ)**の使い方を一覧付きでわかりやすく解説します。


🔍 なぜ><が使えないのか?

DOSバッチでは、><リダイレクト記号として解釈されます。

記号意味
>標準出力をファイルへ出力
<標準入力としてファイルを読み込み

そのため以下のようなコードを書くと…

この>は「10 に出力をリダイレクトする」ものとして扱われ、比較として動作しません。


✅ if文に使える数値比較演算子一覧

バッチファイルで数値比較を行う場合は、以下の演算子を使用します。

演算子意味不等号で表すと
GTRGreater Than>
LSSLess Than<
GEQGreater or Equal>=
LEQLess or Equal<=
!ERROR! A6 -> Formula Error: Unexpected operator '='Equal!ERROR! C6 -> Formula Error: Unexpected operator '='

✅ 正しい書き方例(数値比較)


⚠ NG例(ダメな書き方)


💡 文字列比較をする場合は「==」を使用


📎 不等号を「文字」として表示したい場合

^ を使ってエスケープ(無効化)することで、文字として扱えます。


✅ まとめ

やりたいこと書き方
数値比較GTR / LSS / GEQ / LEQ
文字列比較!ERROR! B3 -> Formula Error: Unexpected operator '='
不等号を文字として表示^<、^>

DOSバッチでは><はリダイレクト記号として解釈されるため、if文内では専用の比較演算子を使う必要があります。 比較がうまく動かないと感じたら、まず演算子を見直してみましょう!

Ads by Google

0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る
0
あなたの考えが大好きです、コメントしてください。x