测试以查看Powershell中是否存在计划任务 [英] Testing to see if a scheduled task exist in powershell
本文介绍了测试以查看Powershell中是否存在计划任务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我不知道为什么下面的代码行不通:
I can't figure out why the below code won't work:
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
,它将正确显示名称.
If I echo $task.name
from the shell without going through the script, it properly displays the name.
推荐答案
在双引号字符串中使用时,变量求值将在标点处停止.您可以使用$()
表示字符串中的子表达式,如下所示:
When used in a double-quoted string, variable evaluation will stop at punctuation. You can use $()
to denote a subexpression within a string, like this:
"TASK: $($task.name)"
然后,PowerShell将计算括号内的表达式并使用结果扩展字符串
PowerShell will then evaluate the expression inside the parentheses and expand the string with the outcome
这篇关于测试以查看Powershell中是否存在计划任务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文