powershell - 测试以查看 powershell 中是否存在计划任务

标签 powershell foreach scheduled-tasks

我不明白为什么下面的代码不起作用:

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/

相关文章:

azure - 为什么 Move-AzResource 无法移动同一资源组内具有依赖关系的资源?

powershell - 为什么我的参数只处理一个值

powershell - 如何通过ansible将本地powershell脚本运行到远程机器中?

php - 使用数组在 foreach 循环中将 PHP 变量设置为 MySQL 数据

if-statement - 计划的批处理文件备份

Python - 任务计划程序 0x1

powershell - 在 powershell 上使用 Skype 在线连接器获取用户的 Skype 状态

c++ - 是否有一个元组 for_each() 返回从调用的函数返回的所有值的元组?

php - Foreach codeigniter View 上的 undefined variable 错误

multithreading - Erlang 怎么 sleep (晚上?)