2014-03-07 2 views
2

그래서 사용자가 y 또는 n을 입력 할 수있는 선택 사항을 코드화하고 싶습니다. 종료합니다. 그리고 이것은 제가 시도한 것입니다 :사용자 입력 - 배치 방법

@echo off 
    echo          ---WARNING--- 
    echo. 
    echo DO YOU WANT YOUR COMPUTER TO SHUTDOWN? (y/n) 
    If /I "%Input%"=="y" goto yes 
    If /I "%Input%"=="n" goto no 
    :yes 
    shutdown /s 
    :no 
    pause 

올바른 트랙을 따라 가고 있습니까?

답변

3

이것을 추가하십시오. 나는 또한 goto를 추가했다. 왜냐하면 만약 당신이 no를 yes로 선택하지 않으면 자동으로 yes로 넘어갈 것이기 때문이다.

set /p Input=Enter Yes or No: 

아래 코드에 실패하면이 코드를 추가 할 수 있지만 맨 아래 코드가 작동합니다.

set /P INPUT=Type input: %=% 
If %INPUT%=="y" goto yes 
If %INPUT%=="n" goto no 

귀하의 코드는 다음과 같이해야한다 :

여기
@echo off 
echo          ---WARNING--- 
echo. 
echo DO YOU WANT YOUR COMPUTER TO SHUTDOWN? (y/n) 
set /p Input=Enter Yes or No: 
If /I "%Input%"=="y" goto yes 
goto no 
:yes 
shutdown /s 
:no 
pause 
1

내가 그것을 할 거라고하는 방법이다 : 그들은 예 중 하나를 입력하지 않은 경우

@echo off 
setlocal 

:again 
set /p ans=Do you want to do something? (y/n) 
if /i "%ans:~0,1%" EQU "Y" (
    Echo you selected Yes. 
    REM do yes stuff 
) ELSE (if /i "%ans:~0,1%" EQU "N" (
    Echo you selected No. 
    REM Do no stuff 
    ) ELSE (
    Echo You need to select yes or no only. 
    goto :again 
    ) 
) 

그 방법을, 당신은 잡아 또는 아니오를 선택하고 예 또는 아니오의 변형을 입력했는지 파악하십시오.

1

다른 많이 IF 문을 사용하지 않고, 두 줄에서이 작업을 수행하는 것은 이것이다 :

2 라인 편집 : 선택의

@echo off 
echo          ---WARNING--- 
echo. 
choice /c yn /n /m "DO YOU WANT YOUR COMPUTER TO SHUTDOWN? (y/n)" 
goto %ERRORLEVEL% 
:1 
shutdown /s 
:2 
pause 

설명, A :

choice /c yn /n /m "DO YOU WANT YOUR COMPUTER TO SHUTDOWN? (y/n)" 
goto %ERRORLEVEL% 

전체가 CODE (2 LINE [편집) 기본 제공 명령 :

이 도구를 사용하면 선택 목록에서 하나의 항목을 선택하고 선택한 선택 항목의 색인을 반환 할 수 있습니다. /c yn은 사용자가 선택할 수있는 선택 사항을 지정합니다. /n은 사용자의 기본 프롬프트를 숨 깁니다. /m" " 내부에 정의 된 사용자에게 맞춤 메시지를 제공합니다. 두 번째 줄은 goto %ERRORLEVEL%이며 코드에서 원하는 :으로 코드를 보냅니다. %ERRORLEVEL% (이 설명은 선택 명령에만 해당하며 다른 방법으로는 %ERRORLEVEL%을 사용할 수 있습니다.)은 1과 x 사이의 숫자를 반환합니다. 여기서 x는 총 선택 수입니다. 이 예에서는 y을 누르면 1이 반환되고 n을 누르면 2가 반환됩니다.

편집 : 궤변 중에 있지만 잘못된 명령을 사용하고 있습니다. 당신이 같음을위한 C++ 구문이의 if 명령에 대한

@echo off 
echo          ---WARNING--- 
echo. 
choice /c yn /n /m "DO YOU WANT YOUR COMPUTER TO SHUTDOWN? (y/n)" 
set INPUT=%ERRORLEVEL% 
if %INPUT% EQU 1 goto yes 
if %INPUT% EQU 2 goto no 
:yes 
shutdown /s 
:no 
pause 

: 내 수정을 구현할 수있는 또 다른 방법이있다. 배치에서, 당신은 더 적은 동일한보다는보다 크거나 같은보다 큰위한 GTR에, 그리고 GEQ 덜보다 LEQ 동등한하지 않는 동등한에 대한 EQU, NEQ, LSS를 사용합니다. 좀 더 심층적 인 정보를 원하면 다음에 명령 프롬프트를 열 때 if /?을 할 수 있습니다. 많은 정보가 가득합니다.

또한 id10t 사용자 오류를 제거합니다. 사용자가 오류를 일으키거나 잘못 사용하려고 시도 할 수있는 모든 오류를 의미합니다.

~ 화상

관련 문제