gpt4 book ai didi

windows - 在批处理文件中检查 SCHTASKS 状态

转载 作者:可可西里 更新时间:2023-11-01 10:16:57 25 4
gpt4 key购买 nike

我已经用以下命令编写了一个批处理文件来检查 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 is off.(或 on)。这表明您的变量为空。

一旦您离开 FORDO 部分,变量 %%I 就会失去作用域。如果我没有提供 schtasks 的完整路径,我也会遇到问题让生产线运行。

这对我有用:

FOR /F %%I IN ('C:\Windows\System32\schtasks.exe /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%

如果您处于循环中,您可能会遇到状态更新问题。如果是这样,请尝试:

SETLOCAL ENABLEDELAYEDEXPANSION
FOR /F %%I IN ('C:\Windows\System32\schtasks.exe /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!

关于windows - 在批处理文件中检查 SCHTASKS 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37950958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com