我编写了一个脚本,作为脚本的一部分,我正在检查作业是否正在运行,如果是,则强制它停止:
$copyjob = Get-Job -Name DBACopy_QFR1-DBA20_2_QFR3-DBS21_S_Drv_DBA -ErrorAction SilentlyContinue
if ($copyjob)
{
remove-job $copyjob -force # This job my be causing problems with the backups so we kill it to make sure.
}
但是,我认为我编写的是脚本运行时出现此错误的原因:
无法将值“System.Management.Automation.PSRemotingJob”转换为“System.Boolean”类型。布尔参数仅接受布尔值和数字,例如$ True,$ False,1或0
是否有更好的方法可以避免错误,或者我认为这就是产生错误的错误。
答案 0 :(得分:1)
而不是
if ($copyjob)
{
}
尝试使用
if ($copyjob -ne $null)
{
}
答案 1 :(得分:0)
如果这是您的所有代码,您可以简化:
Remove-Job -Name DBACopy_QFR1-DBA20_2_QFR3-DBS21_S_Drv_DBA -ErrorAction SilentlyContinue
代码减少,失败的可能性减少。你也可以管道:
Get-Job -Name "SomeName" -ErrorAction SilentlyContinue | remove-job -force