if
ifは、バッチプログラム中で条件処理を行うコマンドです。
解説
ifは単独のコマンドとしてはあまり使用せず、バッチプログラムの中で使用されます。
構文
- (構文)
- IF [オプション] <条件式> 処理
オプション | 説明 |
---|---|
/I | 大文字小文字を区別しない (例)if "a" equ "A" ⇒ FALSE if /i "a" equ "A" ⇒ TRUE |
/? | コマンドのヘルプを表示する |
<条件式>の箇所には以下のような記述ができます
条件式 | 説明 |
---|---|
[NOT] 文字列1==文字列2 | 文字列1と文字列2が同じかどうか判定する |
[NOT] EXIST ファイル名 | 指定したファイルが存在するかどうか判定する |
[NOT] DEFINED 環境変数名 | 指定した環境変数が存在するかどうか判定する |
[NOT] ERRORLEVEL 番号 | 指定した番号以上のERRORLEVELかどうか判定する |
どれも先頭に NOT を付けると判定結果が逆転します(TRUE⇔FALSE)
条件式には以下の表記を使用します。
不等号など | 表記 | 記述例と結果例 |
---|---|---|
等しい(==) | EQU | 10 equ 10 ⇒ true |
等しくない(<>) | NEQ | 10 neq 20 ⇒ true |
より小さい(<) | LSS | 10 lss 11 ⇒ true |
以下(<=) | LEQ | 10 leq 10 ⇒ true |
より大きい(>) | GTR | 11 gtr 10 ⇒ true |
以上(>=) | GEQ | 10 geq 20 ⇒ true |
否定(!) | NOT | NOT 10 equ 10 ⇒ false |
存在するかどうか | EXISTS | EXISTS C:¥hoge.txt |
EQUは == でもOKです。
サンプル
IF~ELSEIF~ELSE サンプル
@echo off
setlocal
set a=200
if %a% equ 100 (
echo aは100です
) else if %a% equ 200 (
echo aは200です
) else (
echo aは100でも200でもありません
)
endlocal
大文字小文字を区別せず比較する
@echo off
setlocal
set a=hoge
if /i %a% equ HOGE (
echo aはHOGEです
) else (
echo aはHOGEではありません
)
endlocal
否定のサンプル
@echo off
setlocal
set a=100
if not %a% equ 100 (
echo aは100ではありません
) else (
echo aは100です
)
endlocal
ファイルが存在するかどうかを判定する
@echo off
setlocal
set a=C:¥temp¥test2.txt
if exist %a% (
echo 指定したファイルが存在します
) else (
echo 指定したファイルが存在しません
)
endlocal
指定した環境変数が存在するかどうかを判定する
@echo off
setlocal
set aa=hoge
if defined aa (
echo 環境変数aaは存在します
) else (
echo 環境変数aaは存在しません
)
endlocal
上記の結果は「存在する」になります。
setの行を「set aa=」にすると結果は「存在しない」になります。
備考
- 括弧の前後には半角スペースが必要です