/ / Jak poprawnie użyć „else” w pliku wsadowym? - windows, instrukcja if, plik wsadowy, cmd

Jak poprawnie używać "else" w pliku wsadowym? - okna, instrukcje if, plik wsadowy, cmd

Pracowałem nad czymś, a utknąłem w tym:

zestaw / p! =

gdyby %!% == yahoo.com iść do WIEŚNIAK

gdyby %!% == facebook.com iść do FACEBOOK

gdyby %!% == mail.google.com iść do GMAIL

gdyby %!% == youtube.com iść do YOUTUBE

gdyby %!% == google.com iść do GOOGLE

jeszcze goto JESZCZE

Przy okazji, to tylko przykład. Problem polega na tym, że inne nie działają poprawnie ... Idk, jak powinienem to zrobić, więc mam nadzieję, że ktoś może pomóc ...

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz ułatwić utrzymanie kodu:

set /p "site="
for %%A in (
yahoo.com:YAHOO
facebook.com:FACEBOOK
mail.google.com:GMAIL
youtube.com:YOUTUBE
google.com:GOOGLE
) do for /f "tokens=1,2 delims=:" %%B in (%%A) do if "%site%" equ "%%B goto %%C
goto SomewhereElse

Co więcej, możesz użyć pełnego adresu strony jako swojej etykiety, wtedy kod staje się trywialny, o ile każda etykieta zaczyna się na początku wiersza:

set /p "site="
>nul findstr /bc:":%site%" "%~f0" && (goto %site%) || goto SomewhereElse

:yahoo.com
rem code here

:facebook.com
rem etc

0 dla odpowiedzi nr 2

ELSEjest kluczowym słowem wsadowo, nie używaj go do skoku etykiety:

set /p "X="
if "%X%" == "yahoo.com" goto YAHOO
if "%X%" == "facebook.com" goto FACEBOOK
if "%X%" == "mail.google.com" goto GMAIL
if "%X%" == "youtube.com" goto YOUTUBE
if "%X%" == "google.com" goto GOOGLE
goto ELSEWHERE

Powinieneś nauczyć się wsadowego przed utworzeniem skryptów wsadowych.


0 dla odpowiedzi № 3
set /p "X="
if "%X%" == "yahoo.com" (
echo YAHOO
) else if "%X%" == "facebook.com" (
echo FACEBOOK
) else if "%X%" == "mail.google.com" (
echo GMAIL
) else if "%X%" == "youtube.com" (
echo YOUTUBE
) else if "%X%" == "google.com" (
echo GOOGLE
) else (
echo OTHER
)

0 dla odpowiedzi nr 4

Nie musisz używać Else kod:

set /p !=

if %!% == yahoo.com goto YAHOO

if %!% == facebook.com goto FACEBOOK

if %!% == mail.google.com goto GMAIL

if %!% == youtube.com goto YOUTUBE

if %!% == google.com goto GOOGLE

goto ELSE

I goto mail.google.com i wszystko, co nie wyśle ​​Cię na strony.