我有一个Windows .bat文件,我想接受用户输入,然后使用该输入的结果作为调用其他命令的一部分。
例如,我想接受来自用户的进程ID,然后针对该ID运行jstack,将jstack调用的结果放入文件中。 但是,当我尝试这个时,它不起作用。
这是我的样本bat文件内容:
@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]
设置变量后,您可以按以下方式使用它。
@echo off
set /p UserInputPath=What Directory would you like?
cd C:\%UserInputPath%
请注意%VariableName%语法
#2楼
变量周围的美元符号在我的Vista机器上不起作用,但百分号符号。 另请注意,“set”行上的尾随空格将显示在提示和用户输入之间。
#3楼
试试这个:
@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