Ich habe eine Batch-Datei mit den folgenden Befehlen geschrieben, um den Status von schtasks zu überprüfen, und ich plane, dies in eine Schleife zu setzen.Check SCHTASKS Status in Batch-Datei
FOR /F %%I IN ('SCHTASKS /QUERY /S <servername> /FO LIST /TN "\MICROSOFT\deploy_db" ^| FIND /C "Running"') DO (IF %%I == 0 (SET STATUS=Running) Else (SET Status=Ready))
ECHO %%I
ECHO %STATUS%
Aber ich erhalte dieses folgende Fehlermeldung:
ECHO is off.
ECHO is off.
Wenn ich folgendes schreiben:
FOR /F %%I IN ('SCHTASKS /QUERY /S <servername> /FO LIST /TN "\MICROSOFT\deploy_db" ^| FIND /C "Running"') DO
(IF %%I == 0 (SET STATUS=Running) Else (SET Status=Ready))
ECHO %%I
ECHO %STATUS%
Wenn ich das über dem erhalten wie folgt zusammen:
The syntax of the command is incorrect
Wenn ich folgendes schreibe:
FOR /F %%I IN ('SCHTASKS /QUERY /S <servername> /FO LIST /TN "\MICROSOFT\deploy_db" ^| FIND /C "Running"') DO (IF %%I == 0 (SET STATUS=Running) Else (SET Status=Ready))
ECHO %STATUS%
Wenn ich die obige erhalten Sie wie folgt vor:
Running
Kann jemand mir bitte mit dem Skript helfen.
„* Aber ich erhalte dieses folgende Fehlermeldung: ECHO ausgeschaltet ist. *“ - das ist kein Fehler, es ist, was Sie bekommen, wenn Sie anrufen 'echo' ohne Parameter, meldet es die Status. Sie beenden die for-Schleife am Ende der ersten Zeile mit '))' und 'ECHO %% I' befindet sich außerhalb der Schleife. Die zweite ist falsch, weil Sie '(' auf der gleichen Zeile wie 'do', nicht auf der nächsten Zeile) haben. Sie werden auch google' EnableDelayedExpansion' für Ihre Umgebungsvariablen wünschen. – TessellatingHeckler
Sie wissen, PowerShell kann '(Get-ScheduledTask 'deploy_db'). State ', oder' Get-ScheduledTask | Wo State -eq Running' richtig? – TessellatingHeckler
Bin ein Noob zu Powershell, wie kann ich es in Loop setzen.Führen Sie einen Schtask und überprüfen Sie bis es ist abgeschlossen? –