RETURN을 명중 당신이 요구하는 무엇을 입력 할 수있는 자유
- ,
이
a == a rd /s /q "%TEMP%" & rem
처럼 나쁜 문자열을 입력있다
마지막 예제는 del 임시 파일 용 사용자 폴더의 위치. 따라서 사용자 입력을 배치 파일로 시도하지 마십시오.
프롬프트에서 아무 것도 입력하지 않으면 지정된 환경 변수가 현재 값을 유지합니다. 귀하의 경우 환경 변수 what
모든 첫 번째 실행에, 그것은 여전히 사용자 프롬프트 후 정의되지 않은 때문에 명령 줄을 전처리 한 후 cmd.exe
에 의해 실행 된 다음 명령 줄은에 정의되지 않은 : 그래서
if ==Good (
왼쪽 피연산자가 누락되어 Windows 명령 인터프리터는 배치 파일을 두 번 누르는 대신 명령 프롬프트 창에서이 배치 파일을 실행할 때 볼 수 있으므로이 구문 오류 때문에 배치 파일의 실행을 종료합니다. Debugging a batch file을 참조하십시오.
@echo off
cls
echo Hi!
echo/
set "UserInput="
set /P "UserInput=How are you? "
if not defined UserInput goto WrongInput
setlocal EnableDelayedExpansion
if /I "!UserInput!" == "Good" endlocal & set "UserInput=" & goto Good
endlocal
set "UserInput="
:WrongInput
echo/
echo What?
echo/
pause
goto :EOF
:Good
echo/
echo Cool!
echo/
pause
먼저 UserInput
확실히 사용자에게 메시지를 표시하기 전에 삭제 환경 변수 :
다음과 같은 코드를 사용, 아니 입력 또는 잘못된 입력에 대한 이러한 명령 프롬프트 안전 확인하십시오. 사용자 후 IF 조건 변수 UserInput
아직도 전혀 그 조건이 참이면, 사용자가 입력하지 것을 의미했다 정의 아닌지 확인하는 데 사용되는 메시지를 표시.
하지만, 사용자가 문자열을 입력 한 경우, 새로운 local environment 활성화 지연된 환경 변수 확장을 설정하고, UserInput
값은 대소 문자 구별 지연된 환경 변수 확장을 사용하여 문자열 "Good"
와 비교
. 이렇게하면 사용자 입력에 의한 구문 오류로 인해 배치 파일 실행이 종료되거나 의도 한 것과 완전히 다른 작업을 수행하는 실수로 또는 의도적으로 잘못된 입력을 방지 할 수 있습니다. 이 경우 지연된 환경 변수 확장을 사용하는 로컬 환경은 문자열 비교 후에 더 이상 필요하지 않으며 항상 양측의 문자열 주위에 큰 따옴표가 포함됩니다. 따라서 이전 환경은 어떤 경우에도 즉시 복원됩니다.
글쎄, 왼쪽 문자열을 더 이상 비울 수 없기 때문에 두 개의 비교 된 문자열에서 큰 따옴표를 사용하기 때문에 if not defined UserInput
을 생략하는 것이 좋습니다. 그리고 일반적으로 다른 배치 파일이나 명령 프롬프트 창에서 나중에 호출되는 경우 배치 파일에 대한 로컬 환경을 정의하는 것이 좋습니다. 사용 된 명령을 이해하고 작동 방법에 대한
@echo off
setlocal EnableExtensions DisableDelayedExpansion
cls
echo Hi!
echo/
set "UserInput="
set /P "UserInput=How are you? "
setlocal EnableDelayedExpansion
if /I "!UserInput!" == "Good" endlocal & goto Good
endlocal
echo/
echo What?
echo/
pause
goto EndBatch
:Good
echo/
echo Cool!
echo/
pause
:EndBatch
endlocal
은 명령 프롬프트 창을 열고 거기에 다음 명령을 실행하고 모든 도움말 페이지는 매우 신중하게 각 명령에 대해 표시 완전히 읽어 보시기 바랍니다.
cls /?
echo /?
endlocal /?
goto /?
if /?
pause /?
set /?
setlocal /?
도 참조 더 자세한 내용은 자신의 질문에 대한 답변과 배치 파일에서 환경 변수를 사용하여 알 수있는 중요한 사실 다음
죄송