在 powershell 中转义字符只是愚蠢的。我已经尝试了所有我能找到的方法来尝试在我传递给 powershell 脚本的参数中转义这个管道,但我绝对无法转义它。真是疯了。我确保在单引号中传递参数,并尝试了所有的 powershell/windows 转义字符(`,``,\,\,^,^^)。任何帮助是极大的赞赏。
测试脚本示例:
$cmd = $Args[0] #set first parameter received to $cmd to run with Invoke-Expression (must wrap param in single quotes if it contains spaces)
write-host $cmd
使用包含命令的管道调用测试脚本:
C:\Windows\System32\cmd.exe /c powershell -executionPolicy Unrestricted -InputFormat none "D:\test_powershell\app\test_wrapper.ps1" 'test1 | test2'
结果:
'test2'' is not recognized as an internal or external command,
operable program or batch file.