我有一個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)?
語法以下: set /p variable=[string]
code
查看http://commandwindows.com/batch.htm或http://www.robvanderwoude.com/userinput.php ,瞭解使用不一樣版本的Windows操做系統批處理文件進行更深刻的用戶輸入。 htm
設置變量後,您能夠按如下方式使用它。 進程
@echo off set /p UserInputPath=What Directory would you like? cd C:\%UserInputPath%
請注意%VariableName%
語法 get
變量周圍的美圓符號在個人Vista機器上不起做用,但百分號符號。 另請注意,「set」行上的尾隨空格將顯示在提示和用戶輸入之間。 input
試試這個: string
@echo off set /p id="Enter ID: "
而後,您能夠使用%id%
做爲另外一個批處理文件的參數,例如jstack %id%
。
例如:
set /P id=Enter id: jstack %id% > jstack.txt
@echo off :start set /p var1="Enter first number: " pause
@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