隐藏或避免 PowerShell Script return 错误信息

Hide or avoid the PowerShell Script return the error message

我想要一个 PowerShell 脚本来检查任务调度程序。如果任务名称存在则删除它。

if (schtasks /query  /tn "mytask") {
    schtasks /delete /tn "mytask" /f | Out-Null
}

当用户在任务计划程序中有任务名称时,语法运行良好。但是,当任务名称不存在时,PowerShell returns 错误消息:

schtasks : ERROR: The system cannot find the file specified.
At line:1 char:5
+ if (schtasks /query  /tn "mytask") {
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (ERROR: The syst...file specified.:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

有什么方法可以避免或隐藏 PS return 错误信息吗?

我是 PowerShell 的新手,非常感谢您的帮助!

您可以使用流 redirection operator > 来抑制来自 schtasks:

的错误
if(schtasks /query  /tn "mytask" 2>$null){
    schtasks /delete /tn "mytask" /f | Out-Null
}

但我个人更喜欢使用 ScheduledTasks module 中的 Get-ScheduledTask,然后使用 -ErrorAction 通用参数来忽略任何错误:

if(Get-ScheduledTask -TaskName "mytask" -ErrorAction Ignore){
    Unregister-ScheduledTask -TaskName "mytask" -Confirm:$false | Out-Null
}