标准输入到使用Invoke-Expression调用的命令

时间:2013-08-23 14:13:21

标签: powershell powershell-v2.0

我有一个字符串$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中那样转义第二个参数。这在我们的案例中并不重要,但为了完整起见,我在这里注释)。

1 个答案:

答案 0 :(得分:3)

Start-Process有一个-RedirectStandardInput。您可以看看它是否适合您的需求。