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

标签 powershell powershell-2.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中那样转义第二个参数。在我们的情况下,这不是至关重要的,但出于完整性考虑,我在此进行了注释)。

最佳答案

Start-Process有一个-RedirectStandardInput。您可以查看它是否可以满足您的需求。

关于powershell - 标准输入到使用Invoke-Expression调用的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18405001/

相关文章:

Powershell 在 7zip 上使用调用运算符

azure - 为什么我无法通过 powershell 脚本运行 python 命令?

azure - Log Analytics 工作区 - 要列出的警报

powershell - 在 Web 请求中信任 HTTPS 站点的证书

powershell - 使用 -Command 和 -File 开关从命令行 (cmd.exe) 运行 Powershell.exe?

PowerShell:检测脚本函数中的错误

powershell - 在 Powershell 中获取 ADFS token

Powershell PromptForChoice - 如何编辑描述?

Powershell 拉取 AD 组和子组无限循环

powershell - 从远程计算机获取Powershell中.dll的文件版本