Windows cmd에서 사용자 입력을 요청하고 결과를 다른 명령어로 사용하려면 어떻게 해야 합니까?
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%
다른 로서 "Data"와 같은 다른 배치파일에 대한 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에서 다양한 버전의 Windows OS 배치 파일을 사용한 사용자 입력에 대한 자세한 내용을 확인하십시오.
변수를 설정하면 다음과 같은 방법으로 사용할 수 있습니다.
@echo off
set /p UserInputPath=What Directory would you like?
cd C:\%UserInputPath%
%VariableName%
변경
set /p choice= "Please Select one of the above options :"
echo '%choice%'
에 있는 공간=
매우 중요합니다.
모든 버전의 Windows에 해당하는지 모르겠지만, 현재 사용하고 있는 XP 머신에서는 다음을 사용해야 합니다.
set /p Var1="Prompt String"
따옴표 안에 프롬프트 문자열이 없으면 텍스트에 따라 다양한 결과를 얻을 수 있습니다.
@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
SETX에는 SET와 마찬가지로 문서화된 /prompt 파라미터가 없습니다.
재부팅 후에도 존속할 환경변수를 입력해야 하는 경우 SETX를 사용하여 저장할 수 있습니다.
SETX에 의해 작성된 변수는 명령 프롬프트를 재시작할 때까지 사용할 수 없습니다.단, 같은 이름을 가진 변수라도 이미 설정된 변수를 SETX로 설정할 수 있습니다.
Windows 8.1 Pro에서는 다음과 같이 동작합니다.
set /p UserInfo= "What is your name? "
setx UserInfo "%UserInfo%"
(기존 변수 주변의 따옴표는 필수입니다).
이 절차에서는 현재 세션 중에 임시 SET 생성 변수를 사용할 수 있으며 컴퓨터를 재부팅하거나 CMD 프롬프트를 재시작할 때 SETX 생성 변수를 재사용할 수 있습니다.
(코드 단락의 형식을 올바르게 지정하기 위해 편집)
html 입력 요소를 사용하는 userInput.bat에서도 시도할 수 있습니다.
그러면 입력이 jstackId 값에 할당됩니다.
call userInput.bat jstackId
echo %jstackId%
할 수 .FOR /F
:
call userInput.bat
@echo off
:start
set /p var1="Enter first number: "
pause
두 가지 가능성이 있습니다.
%id%
jstack
jstack %id% > jstack.txt
따라서 올바른 배치 파일 전체는 다음과 같습니다.
@echo off
set /p id=Enter ID:
echo %id%
jstack %id% > jstack.txt
그리고/또는 2.코드에 입력(질문에 기입하는 것을 잊었습니다)했지만, 배치 파일을 실행할 때 ID를 입력하는 대신 Enter 키를 누릅니다(예: 1234).
있는 이 두 실수가 입니다.jstack
아이디
단, 고객님의 경우 (질문에 입력한 코드에 따라) 변수 없이 호출했습니다.다음과 같이 기입:
jstack > jstack.txt
★★★★★★★▼jstack
과 같이합니다.
Terminate batch file Y/N?
는 프로그램에서과 같은 질문을 받았을 때 키를 입니다.Enter ID:
예를 들어 1234라고 「ID」, 「ID」, 「ID」를 입력합니다.%id%
1234년입력해 주세요. 않은 는 다른 값으로 설정됩니다.%id%
、 [ ]의 프롬프트로 설정되어 있습니다.의 되어 있습니다.set
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」%id%
로 설정되어 있다.Enter ID:
jstack.jstack을 되었습니다.
당신이 있는 생각합니다.jstack %id% > jstack.txt
와 Batch 파일코드로 합니다.%id
(질문에서 실수로 빠뜨린 경우), id를 입력하지 않고 Enter 키를 누릅니다.으로 배치 은 현재 ID가 된 ID를하고 "Enter ID:"를 했습니다.jstack Enter ID: > jstack.txt
Jstack 자체에서 입력이 반복되어 오류가 발생하여 종료를 요청했습니다.
「jstack」의 「jstack」의 「jstack」.파일.txt 파 t 。
클라이언트에 PC를 준비할 때 사용하는 약간의 cmd가 있습니다.사용자를 호출하여 입력을 요구하고 PC의 이름을 그 cmd로 변경합니다.
@ECHO "remember to run this as admin."
@ECHO OFF
SET /P _inputname= Please enter an computername:
@ECHO Du intastede "%_inputname%"
@ECHO "The pc will restart after this"
pause
@ECHO OFF
wmic computersystem where name="%COMPUTERNAME%" call rename name="%_inputname%"
shutdown -r -f
변수 주변의 달러 기호는 Vista 기계에서 작동하지 않지만 백분율 기호는 작동합니다.또한 프롬프트와 사용자 입력 사이에 "set" 행의 후행 공백이 표시됩니다.
방금 추가했습니다.
set /p NetworkLocation= Enter name for network?
echo %NetworkLocation% >> netlist.txt
시퀀스를 내 netsh 배치 작업.이제 해당 샘플의 포인트로 응답한 위치가 표시됩니다.출력파일을 계속 >>그래서 '집', '직장', '스타벅스' 등을 알 수 있게 되었습니다.깨끗한 공기를 찾고 있는 경우, 사용 빈도가 가장 낮은 채널과 주변에 5개의 2.4MHz WLAN이 있는지 또는 모든 WLAN을 사용할 수 있습니다.
변수의 기본값을 유지하기 위해서입니다.Enter 키를 눌러 .bat의 최근 실행에서 기본값을 사용합니다.
@echo off
set /p Var1=<Var1.txt
set /p Var1="Enter new value ("%Var1%") "
echo %Var1%> Var1.txt
rem YourApp %Var1%
첫 번째 실행에서는 변수의 초기 값을 가진 파일이 없다는 메시지를 무시하거나 Var1.txt를 수동으로 생성하십시오.
흥미로운 또 다른 방법이 있습니다.파워셸 스크립트를 호출하여 데이터 바흐를 cmd로 전송하거나 이와 같은 작업을 수행할 수 있습니다.
set var=myvar;
call "c:\input2.cmd" %var%.
좀 더 유연합니다(powershell에서도 동일한 방법으로 데이터를 전송할 수 있습니다).
따라서 cmd에서는 ps 스크립트가 다음 위치에 있는 것을 고려하여 이 내용을 기입합니다.C:
:
PowerShell.exe -ExecutionPolicy unrestricted -Command "& {. C:\Input.ps1}"
그리고 input.ps1 스크립트에 다음과 같이 적습니다.
$var = Read-Host -Prompt "Your input"
Write-Host "Your var:",$var
#Do stuff with your variable
언급URL : https://stackoverflow.com/questions/1223721/in-windows-cmd-how-do-i-prompt-for-user-input-and-use-the-result-in-another-com
'source' 카테고리의 다른 글
sed/grep을 사용하여 두 단어 사이에 텍스트를 추출하는 방법은 무엇입니까? (0) | 2023.04.17 |
---|---|
프로그램을 실행하면 "bash: ./program permission denied"라고 표시됩니다. (0) | 2023.04.17 |
VIM Ctrl-V가 윈도우즈 붙여넣기와 충돌함 (0) | 2023.04.17 |
c#의 Open Xml SDK를 사용하여 DataTable을 Excel로 내보내기 (0) | 2023.04.17 |
Xcode 7 오류: "iOS 배포 서명 ID 누락..." (0) | 2023.04.17 |