我不明白为什么下面的代码不起作用:
Function createFirefoxTask() {
$schedule = new-object -com Schedule.Service
$schedule.connect()
$tasks = $schedule.getfolder("\").gettasks(0)
foreach ($task in ($tasks | select Name)) {
echo "TASK: $task.name"
if($task.equals("FirefoxMaint")) {
write-output "$task already exists"
break
}
}
}
createFirefoxTask
我得到的输出是这样的:
FirefoxMaint
TASK: @{Name=FirefoxMaint}.name
TASK: @{Name=Task1}.name
TASK: @{Name=Task2}.name
TASK: @{Name=Task3}.name
TASK: @{Name=Task4}.name
TASK: @{Name=Task5}.name
如果我回声
$task.name
从 shell 而不通过脚本,它会正确显示名称。
最佳答案
为了防止在任务不存在的情况下 Get-ScheduledTask 出现错误 - 您可能需要考虑执行以下操作:
$taskName = "FireFoxMaint"
$taskExists = Get-ScheduledTask | Where-Object {$_.TaskName -like $taskName }
if($taskExists) {
# Do whatever
} else {
# Do whatever
}
关于powershell - 测试以查看 powershell 中是否存在计划任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17703768/