Testen, um zu sehen, wenn Sie eine geplante Aufgabe existieren in der powershell
Ich kann nicht herausfinden, warum der folgende code nicht funktioniert:
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
Die Ausgabe die ich bekomme, ist diese:
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
Wenn ich echo $task.name
von der shell, ohne den Umweg über das Skript, es zeigt die korrekten Namen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beim Einsatz in einem double-quoted string, variable Auswertung wird halt am Satzzeichen. Sie können
$()
zu bezeichnen, dass ein Teilausdruck innerhalb einer Zeichenfolge wie diese:PowerShell wertet dann den Ausdruck innerhalb der Klammern, und erweitern Sie den string mit dem Ergebnis
Um zu verhindern, dass Fehler mit Get-ScheduledTask im Falle der Aufgabe nicht vorhanden ist - möchten Sie vielleicht in Erwägung ziehen :
Versuchen, diese:
Wenn Sie v3.0, dann kannst du dies tun, indem Sie Get-ScheduledTask. Forexample,
Dann, müssen nur überprüfen Sie den Wert von $task.
Können Sie verwenden Sie den folgenden code, um zu testen, um zu sehen, wenn Sie eine geplante Aufgabe besteht in der PowerShell: