我有一个字符串$command
,其中包含一个带有参数的程序,例如
$command = "c:\mydir\myfoo.exe Parameter1 '/`$`$=bla' Parameter3".
我可以使用Invoke-Expression运行命令:
Invoke-Expression $command
如何将某些内容重定向到程序的标准输入?在我的情况下,程序希望用户以交互方式输入一些字符串,如下所示:
v<RETURN>
<RETURN>
k01
<RETURN>
如果我在cmd.exe环境中工作,则只需将输入字符串通过管道传输到文件(例如
d.inp
),然后使用该文件作为标准输入启动程序:c:\mydir\myfoo.exe Parameter1 /$$=bla Parameter3 < d.inp
(*)
如何在PowerShell中以一种理想的方式做同样的事情?
谢谢!
[*]
(请注意,在cmd.exe中,我们不需要像在PowerShell中那样转义第二个参数。在我们的情况下,这不是至关重要的,但出于完整性考虑,我在此进行了注释)。
最佳答案
Start-Process
有一个-RedirectStandardInput
。您可以查看它是否可以满足您的需求。
关于powershell - 标准输入到使用Invoke-Expression调用的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18405001/