我有一个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