バッチファイルでブール変数を宣言して使用する最良の方法は何ですか?これは私が今やっていることです:
set "condition=true"
:: Some code that may change the condition
if %condition% == true (
:: Some work
)
これを行うためのより良い、より「正式な」方法はありますか? (例:Bashではif $condition
true
およびfalse
は独自のコマンドであるため)
とりあえず、元の答えに固執しています。
set "condition=true"
:: Some code...
if "%condition%" == "true" (
%= Do something... =%
)
これを行うためのより良い方法を誰かが知っている場合は、この質問に答えてください。喜んであなたの答えを受け入れます。
set "condition="
そして
set "condition=y"
ここで、y
は任意の文字列または数値です。
これにより、if defined
およびif not defined
どちらもブロックステートメント(括弧で囲まれたステートメントのシーケンス)内で使用して、enabledelayedexpansion
を必要とせずにフラグのランタイムステータスを問い合わせることができます。
すなわち。
set "condition="
if defined condition (echo true) else (echo false)
set "condition=y"
if defined condition (echo true) else (echo false)
最初はfalse
をエコーし、2番目はtrue
をエコーします
別のオプションは、真理値として「1 == 1」を使用することだと思います。
したがって、例を繰り返します:
set condition=1==1
:: some code
if %condition% (
%= Do something... =%
)
もちろん、true
とfalse
の値を保持するようにいくつかの変数を設定することは可能です。
set true=1==1
set false=1==0
set condition=%true%
:: some code
if %condition% (
%= Do something... =%
)