WindowsのbatファイルのIf文のサンプルです。
目次
If文 | If文とは / if文のサンプル |
数値の比較 | |
ネストのサンプル (if文の中にif文) | |
否定(not) Aではない | |
ファイル、フォルダが存在するか(exist) | |
エラーコードを判定する(errorlevel) | |
環境変数が定義されているか(defined) | |
演算子 | 比較演算子 |
遅延変数のサンプル(if文/for文の注意点)※別ページ |
If文とは
if 条件式 ( 処理 ) |
// else ifとelseを書く場合 if 条件式 ( 処理 ) else if 条件式 ( 処理 ) else ( 処理 ) |
- 条件が合致する場合、配下の処理が実行され、if文の処理は終了します。
- 条件が合致することをtrue(真)ともいいます。
- 条件が合致しないことをfalse(偽)ともいいます。
- 条件が合致しない場合、配下の処理は実行されず、その下(else if/else/if文終了)に進みます。
- else ifは、複数記述できます。省略可です。
- elseの処理は、どの条件も合致しなかったときに実行されます。elseは1つのみ記述できます。省略可能です。
if文のサンプル
文字列の値を比較する場合は、==を使用します。
@echo off
set a="ab"
if %a% == "ac" (
echo acです
) else if %a% == "ab" (
echo abです 出力されます
) else (
echo それ以外です
)
pause
2行目は、変数に値をセットしています。
4行目からif文が始まります。
7行目のelse ifはtrueになるのでその配下の処理が実行されます。
8行目の処理が実行されif文を抜けます。
数値の比較
数値の値を比較する場合は、equ等を使用します。
@echo off
set a=10
if %a% equ 10 (echo aは10と等しい)
if %a% neq 9 (echo aは9ではない)
if %a% gtr 9 (echo aは9より大きい)
if %a% geq 10 (echo aは10以上)
if %a% lss 11 (echo aは11より小さい)
if %a% leq 10 (echo aは10以下)
pause
ネストのサンプル (if文の中にif文)
ネストのサンプルです。AND条件の代わりになります。batファイルにAND条件はありません。
@echo off
set a="abc"
set b="abc"
if %a%=="abc" (
if %b%=="abc" (
echo abcです 出力されます
)
)
pause
6行目は、if文の中にif文を記述しています。ネストの構造です。入れ子ともいいます。
5,6行目は、trueになり文字列が表示されます。
否定(Not) Aではない
If not 条件式 Then |
- 条件式がfalseの場合にtrueになります。
- 条件式がtrueの場合にfalseになります。
@echo off
set a="abc"
if not %a%=="ccc" (
echo trueです 出力されます
)
if not %a%=="abc" (
echo trueです
) else (
echo falseです 出力されます
)
pause
4行目は値の比較でfalseになり、それを否定するのでtrueになります。
8行目は値の比較でtrueになり、それを否定するのでfalseになります。
ファイル、フォルダが存在するか(exist)
if exist ファイル or フォルダ |
- ファイルまたはフォルダが存在する場合にtrueになります。
- ファイルまたはフォルダが存在しない場合にfalseになります。
@echo off
if exist D:\Test1\test1.txt (
echo 存在する 出力されます
)
if exist D:\Test1 (
echo 存在する 出力されます
)
pause
3行目は、ファイルが存在するか判定しています。
11行目は、フォルダが存在するか判定しています。
エラーコードを判定する(errorlevel)
@echo off
call:test1
if not %errorlevel% == 0 (
echo エラー 出力されます
)
pause
:test1
exit /b 9
5行目は、エラーレベルが0以外の時に6行目が実行されます。
11行目は、変数errorlevelに9を設定してます。
環境変数が定義されているか(defined)
@echo off
if defined JAVA_HOME (
echo 存在する 出力されます
)
pause
3行目は、環境変数のJAVA_HOMEが存在する時に4行目が実行されます。
比較演算子
比較演算子は、2つの値を比べて真偽値(true/false)を返します。
条件を満たしていればtrue,そうでない場合はfalseです。
比較演算子 | 説明 |
---|---|
a == b | aとbの値は等しい(文字列) |
not a == b | aとbの値は等しくない(文字列) |
equ | aとbの値は等しい(数値) |
neq | aとbの値は等しくない(数値) |
gtr | aはbより大きい(a > b)(数値) |
geq | aはbより大きい または 等しい(a >= b)(数値) |
lss | aはbより小さい(a < b)(数値) |
leq | aはbより小さい または 等しい(a <= b)(数値) |
関連の記事