Quel est le meilleur moyen de déclarer et d'utiliser une variable booléenne dans les fichiers batch? C'est ce que je fais maintenant:
set "condition=true"
:: Some code that may change the condition
if %condition% == true (
:: Some work
)
Y a-t-il une meilleure façon, plus "formelle" de faire cela? (Par exemple, dans Bash, vous pouvez simplement exécuter if $condition
puisque true
et false
sont des commandes qui leur sont propres.)
Je m'en tiens à ma réponse originale pour le moment:
set "condition=true"
:: Some code...
if "%condition%" == "true" (
%= Do something... =%
)
Si quelqu'un connaît un meilleur moyen de le faire, répondez à cette question et j'accepterai volontiers votre réponse.
set "condition="
et
set "condition=y"
où y
pourrait être n'importe quelle chaîne ou numérique.
Cela permet à if defined
et if not defined
qui peuvent tous deux être utilisés dans une instruction block (une séquence d'instructions entre parenthèses) d'interroger le statut d'exécution du drapeau sans avoir besoin de enabledelayedexpansion
c'est à dire.
set "condition="
if defined condition (echo true) else (echo false)
set "condition=y"
if defined condition (echo true) else (echo false)
Le premier fera écho false
, le second true
Je suppose qu'une autre option consisterait à utiliser "1 == 1" comme valeur de vérité.
Répétant ainsi l'exemple:
set condition=1==1
:: some code
if %condition% (
%= Do something... =%
)
Bien sûr, il serait possible de définir certaines variables pour contenir les valeurs true
et false
:
set true=1==1
set false=1==0
set condition=%true%
:: some code
if %condition% (
%= Do something... =%
)