C'è un modo per passare un OR attraverso un'istruzione IF?Utilizzo di un OR in una dichiarazione IF WinXP Batch Script
Come ad esempio:
SET var=two
IF "%var%"=="one" OR "two" OR "three" ECHO The number is between zero and four.
C'è un modo per passare un OR attraverso un'istruzione IF?Utilizzo di un OR in una dichiarazione IF WinXP Batch Script
Come ad esempio:
SET var=two
IF "%var%"=="one" OR "two" OR "three" ECHO The number is between zero and four.
No.
if "%var%"=="one" goto foo
if "%var%"=="two" goto foo
if "%var%"=="three" goto foo
goto afterfoo
:foo
echo The number is between one and three (technically incorrect, since it includes the end points and thus is not between).
:afterfoo
Se avete bisogno di un approccio più strutturato:
if "%var%"=="one" set OneToThree=1
if "%var%"=="two" set OneToThree=1
if "%var%"=="three" set OneToThree=1
if defined OneToThree (
echo Foo
) else (
rem something
)
figurato = (. Per un po 'stavo scherzando cercando di ingannarlo con random^& | ma senza fortuna lol – Mechaflash
Puoi anche usare questo approccio: per %% a in (uno due tre) fai se "% var% "==" %% a "goto foo – Aacini
un po 'tardi nel gioco, ma comunque assumendo se questo potrebbe aiutare chiunque inciampa nella domanda. Il modo di fare questo sta usando una combinazione di eco convogliato FINDSTR, in questo modo:
(echo ":one: :two: :three:" | findstr /i ":%var%:" 1>nul 2>nul) && (
echo The number is between zero and four
)
Da findstr è un comando esterno, non è consigliabile utilizzare questo all'interno di un ciclo che può passare attraverso 1000 di iterazioni. Se questo non è il caso, questo dovrebbe risolvere ciò che stai tentando di fare invece di usare if multipli. Inoltre, non c'è nulla di speciale nella scelta di ":", basta usare un delimitatore che è improbabile che faccia parte del valore nella variabile var.
Grazie al resto della gente che punta a un altro link che sembra avere una domanda simile, inserirò anche questa risposta, nel caso in cui qualcuno si imbattesse in quella domanda e non raggiungesse abbastanza qui.
oops grazie per la modifica joey. – Mechaflash