在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
相关文章
相关标签/搜索