在Windows cmd中,如何提示用戶輸入並在另外一個命令中使用結果?

我有一個Windows .bat文件,我想接​​受用戶輸入,而後使用該輸入的結果做爲調用其餘命令的一部分。 php

例如,我想接受來自用戶的進程ID,而後針對該ID運行jstack,將jstack調用的結果放入文件中。 可是,當我嘗試這個時,它不起做用。 windows

這是個人樣本bat文件內容: spa

@echo off
set /p id=Enter ID: 
echo %id%
jstack > jstack.txt

這是jstack.txt中顯示的內容: 操作系統

Enter ID: Terminate batch job (Y/N)?

#1樓

語法以下: set /p variable=[string] code

查看http://commandwindows.com/batch.htmhttp://www.robvanderwoude.com/userinput.php ,瞭解使用不一樣版本的Windows操做系統批處理文件進行更深刻的用戶輸入。 htm

設置變量後,您能夠按如下方式使用它。 進程

@echo off
set /p UserInputPath=What Directory would you like?
cd C:\%UserInputPath%

請注意%VariableName%語法 get


#2樓

變量周圍的美圓符號在個人Vista機器上不起做用,但百分號符號。 另請注意,「set」行上的尾隨空格將顯示在提示和用戶輸入之間。 input


#3樓

試試這個: string

@echo off
set /p id="Enter ID: "

而後,您能夠使用%id%做爲另外一個批處理文件的參數,例如jstack %id%

例如:

set /P id=Enter id: 
jstack %id% > jstack.txt

#4樓

@echo off
:start
set /p var1="Enter first number: "
pause

#5樓

@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
相關文章
相關標籤/搜索