it-swarm.com.de

Batch-Datei: Wie lässt sich eine boolesche Variable am besten deklarieren und verwenden?

Wie lässt sich eine boolesche Variable in Batch-Dateien am besten deklarieren und verwenden? Das mache ich jetzt:

set "condition=true"

:: Some code that may change the condition

if %condition% == true (
    :: Some work
)

Gibt es einen besseren, formelleren Weg, dies zu tun? (In Bash können Sie beispielsweise nur if $condition ausführen, da true und false eigene Befehle sind.)

9
James Ko

Ich bleibe vorerst bei meiner ursprünglichen Antwort:

set "condition=true"

:: Some code...

if "%condition%" == "true" (
    %= Do something... =%
)

Wenn jemand einen besseren Weg kennt, antworten Sie bitte auf diese Frage und ich akzeptiere Ihre Antwort gerne.

7
James Ko
set "condition="

und

set "condition=y"

dabei kann y eine beliebige Zeichenfolge oder eine Zahl sein.

Dies ermöglicht if defined und if not defined, die beide innerhalb einer Blockanweisung (einer Klammerfolge von Anweisungen) verwendet werden können, um den Laufzeitstatus des Flags abzufragen, ohne dass enabledelayedexpansion benötigt wird.


dh.

set "condition="
if defined condition (echo true) else (echo false)

set "condition=y"
if defined condition (echo true) else (echo false)

Die erste wird false, die zweite true

12
Magoo

Ich denke, eine andere Option wäre "1 == 1" als Wahrheitswert.

Also das Beispiel wiederholen:

set condition=1==1

:: some code

if %condition% (
    %= Do something... =%
)

Natürlich können einige Variablen so eingestellt werden, dass sie die Werte true und false enthalten:

set true=1==1
set false=1==0

set condition=%true%

:: some code

if %condition% (
    %= Do something... =%
)
0
timfoden