2017-11-28 2 views
0

프로그램을 일괄 처리하려고합니다. 그 프로그램의 일부인 사용자는 1과 5 사이의 숫자를 입력해야합니다. 그러나 아무 것도 입력하지 않으면 프로그램은 설정 한 후에도 변수의 이전 값을 사용합니다 (처음 입력 한 후). PS : 다시 (프로그램 루프에) 여기서 프로그램의 일부의 예이다 0 I 0으로 수동으로 설정하고,이 경우 그래서사용자가 새 변수를주지 않을 때 이전 변수 값을 제거 할 수 있습니까

@echo off 
goto bla 
:bla 
set /p a="a: " 
if "%a%"=="" (
    goto bla 
) 
echo a= %a% 
set /p b="b: " 
if "%b%"=="0" (
    goto bla 
) 
pause 

답변

1

루프는 사용자가 단순히 누르면 을 입력하면 변수가 변경되지 않습니다. 당신이 처음에 변수를 set 경우

, 당신은 그 상태를 감지 할 수 있으며, set/p 실행합니다.

set "var=37" 
set /p "var=promptstring [%var%]" 
if not defined var echo nothing entered 
echo %var% 

이 (프롬프트에서 기본 (37)를 보여줍니다)

:
set "var=" 
set /p "var=promptstring " 
if not defined var echo nothing entered 

는 기본 값을 적용 할 수 있습니다