我有一个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)?
另一种方式可能会很有趣。你可以调用一个powershell脚本,在那里你可以做任何事情,并发送数据巴赫到cmd或做其他类似的事情。
set var=myvar;
call "c:\input2.cmd" %var%.
它更灵活(你可以用powershell同样的方式发送数据)。
所以在你的cmd中,考虑到ps脚本是在C::中编写的
PowerShell.exe -ExecutionPolicy unrestricted -Command "& {. C:\Input.ps1}"
在你的输入中。Ps1脚本,这样写:
$var = Read-Host -Prompt "Your input"
Write-Host "Your var:",$var
#Do stuff with your variable
另一种方式可能会很有趣。你可以调用一个powershell脚本,在那里你可以做任何事情,并发送数据巴赫到cmd或做其他类似的事情。
set var=myvar;
call "c:\input2.cmd" %var%.
它更灵活(你可以用powershell同样的方式发送数据)。
所以在你的cmd中,考虑到ps脚本是在C::中编写的
PowerShell.exe -ExecutionPolicy unrestricted -Command "& {. C:\Input.ps1}"
在你的输入中。Ps1脚本,这样写:
$var = Read-Host -Prompt "Your input"
Write-Host "Your var:",$var
#Do stuff with your variable