Я написал командный файл со следующими командами, чтобы проверить состояние schtasks, и я планирую поместить это в цикл.Проверить состояние SCHTASKS в пакетном файле
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%
Но я получаю эту ошибку:
ECHO is off.
ECHO is off.
Если я пишу следующее:
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%
Если я делаю над получить следующее:
The syntax of the command is incorrect
Если я пишу следующее:
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%
Если я делаю выше получаю следующее:
Running
Может кто-нибудь, пожалуйста, помогите мне со сценарием.
«* Но я получаю эту ошибку при слежении: ECHO выключен *.» - это не ошибка, это то, что вы получаете, когда вы звоните 'echo' без параметров, она сообщает положение дел. Вы заканчиваете цикл for в конце первой строки '))' и 'ECHO %% I' находится за пределами цикла. Второй из них неверен, потому что вы должны '(' в той же строке, что и 'do', а не на следующей строке. Вам также понадобится google' EnableDelayedExpansion' для ваших переменных окружения. – TessellatingHeckler
Вы знаете, что PowerShell может делать '(Get-ScheduledTask 'deploy_db'). State', или' Get-ScheduledTask ', где State -eq Running' правильно? – TessellatingHeckler
Как noob для Powershell, как я могу поместить его в Loop. Запустите Schtask и продолжайте проверять его завершено? –