1

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

4

1 回答 1

3

Start-Process有一个-RedirectStandardInput。你可以看看它是否能满足你的需要。

于 2013-08-23T14:34:39.950 回答