何らかの工夫をする必要があります。
AND
IF 文を繋げる方法
ELSE 文を使わない場合はこの方法のみで大丈夫です。IF 条件A IF 条件B (
処理1
) ELSE (
処理2(注意!)
)
なぜ注意が必要かというと、この書き方は以下のように解釈されるため、条件A が FALSE の場合には実行されないからです。
IF 条件A (
IF 条件B (
処理1
) ELSE (
処理2(条件1が TRUE で条件2 が FALSE の場合にのみ実行される)
)
)
環境変数を使う方法(オススメ)
上記の IF 文を繋げる方法を使用しつつ、環境変数を挟むことで ELSE 文を使いやすくします。一番汎用性が高いと思います。
set TRUE_FALSE=FALSE
IF 条件A IF 条件B set TRUE_FALSE=TRUE
IF %TRUE_FALSE%==TRUE (
処理1
) ELSE (
処理2
)
文字列を複数比較する場合には
条件が両方文字列比較の場合は、文字列を繋げた値を比較すると基本的にうまくいきます。変数の間に「使わない文字」を入れる必要があります。文字を入れないと、例えば期待値AがA、期待値BがBC であった場合、変数AがA で変数BがBCでも、変数AがAB、変数BがCでも真になってしまうからです。
IF 変数A-変数B==期待値A-期待値B (
処理1
) ELSE (
処理2
)
OR
環境変数を使う方法
AND の場合と同じく、環境変数を使う方法が素直でわかりやすいです。set TRUE_FALSE=FALSE
IF 条件A set TRUE_FALSE=TRUE
IF 条件B set TRUE_FALSE=TRUE
IF %TRUE_FALSE%==TRUE (
処理1
) ELSE (
処理2
)
条件A は 条件B の ELSE の中に入れたほうが無駄がないのですが、並列に書いたほうが見やすい気がします。お好みでどうぞ。
AND も OR も環境変数の代わりに goto とラベルを使用しても良いです。
バッチファイル : 改行コードを変数に入れる
0 件のコメント:
コメントを投稿