我有一个字符串$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中那样转义第二个参数。这在我们的案例中并不重要,但为了完整起见,我在这里注释)。
答案 0 :(得分:3)
Start-Process
有一个-RedirectStandardInput
。您可以看看它是否适合您的需求。