2
我已經寫了一個批處理文件,其中包含以下命令以檢查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 | Where State -eq Running'對嗎? – TessellatingHeckler
是Powershell的一個小菜鳥,我怎麼把它放到Loop中。運行一個Schtask並且繼續檢查直到它完成? –