Có cách nào để vượt qua một OR thông qua câu lệnh IF không?Sử dụng OR trong câu lệnh IF WinXP Batch Script
Chẳng hạn như:
SET var=two
IF "%var%"=="one" OR "two" OR "three" ECHO The number is between zero and four.
Có cách nào để vượt qua một OR thông qua câu lệnh IF không?Sử dụng OR trong câu lệnh IF WinXP Batch Script
Chẳng hạn như:
SET var=two
IF "%var%"=="one" OR "two" OR "three" ECHO The number is between zero and four.
số
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
Nếu bạn cần một cách tiếp cận có cấu trúc hơn:
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
)
figured = (.Tôi đã rối tung với nó trong một thời gian cố gắng để lừa nó với ngẫu nhiên^& | nhưng không may mắn lol – Mechaflash
Bạn cũng có thể sử dụng phương pháp này: cho %% a in (một hai ba) làm nếu "% var% "==" %% a "goto foo – Aacini
Một chút trễ trong game, tuy nhiên giả sử nếu điều này có thể giúp bất cứ ai vấp phải câu hỏi. Con đường tôi làm điều này là sử dụng một sự kết hợp của echo đường ống để findstr, theo cách này:
(echo ":one: :two: :three:" | findstr /i ":%var%:" 1>nul 2>nul) && (
echo The number is between zero and four
)
Kể từ findstr là một lệnh bên ngoài, tôi khuyên bạn nên không sử dụng này bên trong một vòng lặp có thể đi qua năm 1000 của lần lặp lại. Nếu đó không phải là trường hợp, điều này sẽ giải quyết những gì bạn đang cố gắng làm thay vì sử dụng nhiều ifs. Ngoài ra, không có gì đặc biệt trong sự lựa chọn ":", chỉ cần sử dụng dấu phân cách mà không có khả năng là một phần của giá trị trong biến var.
Nhờ phần còn lại của mọi người chỉ vào liên kết khác có câu hỏi tương tự, tôi cũng sẽ đăng phản hồi này, trong trường hợp ai đó tình cờ gặp câu hỏi đó và không hoàn toàn tiếp cận ở đây.
oops cảm ơn cho chỉnh sửa joey. – Mechaflash