사용자 입력을 수락하고 추가 명령 호출의 일부로 해당 입력 결과를 사용하려는 Windows .bat 파일이 있습니다.
예를 들어, 사용자로부터 프로세스 ID를 수락 한 다음 해당 ID에 대해 jstack을 실행하여 jstack 호출의 결과를 파일에 넣습니다. 그러나 이것을 시도하면 작동하지 않습니다.
다음은 샘플 박쥐 파일 내용입니다.
@echo off
set /p id=Enter ID:
echo %id%
jstack > jstack.txt
jstack.txt에 표시되는 내용은 다음과 같습니다.
ID 입력 : 일괄 작업 종료 (Y / N)?
답변
이 시도:
@echo off
set /p id="Enter ID: "
그런 %id%
다음와 같은 다른 배치 파일에 매개 변수로 사용할 수 있습니다 jstack %id%
.
예를 들면 다음과 같습니다.
set /P id=Enter id:
jstack %id% > jstack.txt
답변
구문은 다음과 같습니다. set /p variable=[string]
확인 http://commandwindows.com/batch.htm 또는 http://www.robvanderwoude.com/userinput.php를 윈도우 OS의 배치 파일의 서로 다른 버전의 사용자 입력에 더 깊이 잠수.
변수를 설정하면 다음과 같은 방식으로 변수를 사용할 수 있습니다.
@echo off
set /p UserInputPath=What Directory would you like?
cd C:\%UserInputPath%
%VariableName%
구문에 주목
답변
이것이 모든 버전의 Windows에 해당되는지 확실하지 않지만 XP 시스템에서는 다음을 사용해야합니다.
set /p Var1="Prompt String"
quotes에 프롬프트 문자열이 없으면 텍스트에 따라 다양한 결과가 나타납니다.
답변
set /p choice= "Please Select one of the above options :"
echo '%choice%'
이후의 공간 =
은 매우 중요합니다.
답변
@echo off
set /p input="Write something, it will be used in the command "echo""
echo %input%
pause
원하는 것을 얻으면 정상적으로 작동합니다. 다른 명령에서도 % input %을 사용할 수 있습니다.
@echo off
echo Write something, it will be used in the command "echo"
set /p input=""
cls
echo %input%
pause
답변
@echo off
:start
set /p var1="Enter first number: "
pause
답변
SET와 마찬가지로 SETX에 대해 문서화 된 / prompt 매개 변수가 없습니다.
재부팅 후에도 지속될 환경 변수를 묻는 메시지가 표시되면 SETX를 사용하여 저장할 수 있습니다.
SETX로 만든 변수는 명령 프롬프트를 다시 시작할 때까지 사용할 수 없습니다. 그러나 이름이 같은 경우에도 이미 SET 된 변수를 SETX 할 수 있습니다.
이것은 Windows 8.1 Pro에서 작동합니다.
set /p UserInfo= "What is your name? "
setx UserInfo "%UserInfo%"
(기존 변수 주위에 따옴표가 필요합니다.)
이 절차를 통해 현재 세션 중에 임시 SET 작성 변수를 사용할 수 있으며 컴퓨터를 재부팅하거나 CMD 프롬프트를 다시 시작할 때 SETX 작성 변수를 재사용 할 수 있습니다.
(코드 단락의 형식을 올바르게 지정하도록 편집되었습니다.)