PowerShell批处理pipe道

下面的行在PowerShell 2.0中正常工作。

servermanagercmd.exe -query | Select-String "Application Server" -Context 0,13 

但是,当我将它合并到我的batch file中时,它只会尝试运行第一部分,然后在返回Select-String时返回一个错误。 有谁知道如何确保它读取整个行? 我在pipe道前尝试过^,但仍然不能识别整条线。

你正尝试从cmd.exe中使用一个PowerShell的内置命令,这是行不通的。 但是,您可以从.bat文件执行PowerShell,传入要执行的命令:

 powershell.exe -command "& { servermanagercmd.exe -query | Select-String 'Application server' -Context 0,13 }"