我想要做的是禁止错误/警告消息并继续执行我的批处理脚本。所以我正在做的是这样的:
SET psh_path="%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe"
%psh_path% -ExecutionPolicy ByPass -ErrorAction "SilentlyContinue" -Command "Test_invalid_command;"
但是它给了我错误:
Missing expression after unary operator '-'.
At line:1 char:2
我发现解决此问题的一种方法是使用命令
创建silentlyContinue.ps1
文件
$ErrorActionPreference = "SilentlyContinue"
然后像这样使用Dot Sourcing:
%psh_path% -ExecutionPolicy ByPass -Command ". '.\silentlyContinue.ps1'; Test_invalid_command;"
我关心的是如何在第一种情况下实现这一点,我的意思是将选项传递给-ErrorAction
答案 0 :(得分:2)
-ErrorAction不是Powershell.exe的参数
运行powershell.exe /?获取它的参数列表。
-ErrorAction设置需要包含在命令脚本中,无论是显式还是源自其他脚本。
答案 1 :(得分:0)
检查一下:
SET psh_path="%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe"
%psh_path% -ExecutionPolicy ByPass -Command "Test_invalid_command" -ErrorAction SilentlyContinue