2016-02-22 23 views
5

Qual è il modo migliore per dichiarare e utilizzare una variabile booleana nei file batch? Questo è quello che sto facendo ora:Batchfile: qual è il modo migliore per dichiarare e utilizzare una variabile booleana?

set "condition=true" 

:: Some code that may change the condition 

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

Esiste un modo migliore, più "formale" per farlo? (Per esempio in Bash si può solo fare if $condition dal true e false sono comandi dei loro propri.)

+3

Questo è praticamente tutto. Le variabili nel batch sono stringhe o interi a 32 bit e nient'altro. – SomethingDark

+2

Si potrebbe fare 'if defined var', che dà il vantaggio di lavorare all'interno di' if', 'for' e altri blocchi di codice parentetici senza richiedere un'espansione ritardata. Esiste anche l'esecuzione condizionale basata su errorlevel zero o non-zero. – rojo

+0

non dovrebbe essere "% condition%" == "true"? – SomeDude

risposta

4

sto attaccando con la mia risposta originale per il momento:

set "condition=true" 

:: Some code... 

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

Se qualcuno sa di un modo migliore per fare questo , per favore rispondi a questa domanda e accetterò volentieri la tua risposta.

+0

La risposta di Magoo è meglio, come funziona anche all'interno di blocchi di codice – jeb

7
set "condition=" 

e

set "condition=y" 

dove y potrebbe essere una qualsiasi stringa o numerico.

Ciò consente if defined e if not defined entrambi i quali possono essere utilizzati all'interno di un blocco di istruzioni (una sequenza di istruzioni parentesi tonde) per interrogare lo stato di runtime della bandiera senza bisogno enabledelayedexpansion


esempio.

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

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

Il primo sarà eco false, la seconda true

+0

@ AlexanderSchäl: ulteriori spiegazioni. '% condizione%' si riferisce al * contenuto * della variabile 'condizione', quindi' se definito% condizione% 'viene interpretato come' se definito y' se 'condizione' ha il valore' y' – Magoo