![내 스크립트가 잘못된 메시지를 인쇄하는 이유는 무엇입니까?](https://rvso.com/image/1558686/%EB%82%B4%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EA%B0%80%20%EC%9E%98%EB%AA%BB%EB%90%9C%20%EB%A9%94%EC%8B%9C%EC%A7%80%EB%A5%BC%20%EC%9D%B8%EC%87%84%ED%95%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
저는 Y= 예/작업 1 및 N= 아니요/작업 취소라는 두 가지 선택이 가능한 스크립트를 사용하고 있습니다. yes를 선택할 때마다 취소 메시지가 먼저 출력되고,그 다음에작업 1이 실행됩니다. 해당 선택 항목에 대해서만 적절한 메시지가 나타나기를 원합니다. 내 코드는 다음과 같습니다.
@ECHO OFF
:choice
echo.
echo Do you want to proceed with the process?
echo Enter Y to run or N to cancel.
set /p :choice=
if /I "%c%" EQU "Y" goto :YES
if /I "%c%" EQU "N" goto :NO
:NO
echo The operation has been cancelled...
PAUSE
goto :END
:YES
:: Additional code for operation 1 goes here.
echo The operation has been completed successfully!
PAUSE
:END
답변1
set /p varName=
에 저장할 값을 입력하라는 메시지가 표시됩니다 varName
. 귀하의 진술은 완전히 다른 것이 아니라 if
확인해야 합니다 .varName
현재 설정 :choice
및 확인 중 입니다 c
. (%씨%)
바꿔보세요
set /p :choice=
if /I "%c%" EQU "Y" goto :YES
if /I "%c%" EQU "N" goto :NO
에게
set /p choice=
if /I "%choice%" EQU "Y" goto :YES
if /I "%choice%" EQU "N" goto :NO
내 예에서는 명령에서 "선택" 앞에 있는 ":"도 제거했습니다. set /p
불필요해 보이고 명령문 if
을 수정해야 한다는 의미이기 때문입니다.if /I "%:choice%"