如何使PowerShell解释'<'符号作为用户特定命令的一部分?

时间:2014-12-23 08:44:28

标签: powershell

我试图在powershell脚本中运行一个带'<'的实用程序符号作为参数:

utility.exe op1 < op2

但是我执行此命令后得到的是几条黑线除以换行符号。

我尝试使用iex 'utility.exe op1 < op2'

在cmd.exe中运行相同的命令可以正常工作。

1 个答案:

答案 0 :(得分:1)

您将面临的问题是您尝试使用标准命令行中的标准输入重定向运算符替换<运算符。这不是PowerShell的工作原理。

您可以尝试转义它:

utility.exe op1 `< op2;

如果您使用的是PowerShell 3.0,则可以尝试使用stop parsing运算符:

utility.exe --% op1 < op2;

我怀疑其中任何一个都可行,因为utility.exe期望某些内容可以重定向标准输入。

假设op2是文本文件的文件路径,您可以尝试类似:

Start-Process -FilePath 'utility.exe' -ArgumentList 'op1' -RedirectStandardInput 'op2';

如果我知道你实际上想要完成什么而不是要求一般解决方案,我可以更精确。