在没有外部文件的情况下查询多个 Windows 服务的状态

querying the state of multiple Windows services without an external file

我必须使用 sc.exe 将一些服务的状态记录到文本文件中。

我无法使用外部文本或 ini 文件来列出我的 windows 服务。

所以虽然以下工作:

for /f "delims=" %%A in (list.txt) do sc query %%A >> C:\servicestatus.log

我无法使用它,(因为它使用的是外部文本文件)

所以我必须传递所有服务名称,例如:

FOR /F "tokens=2,3 delims=: " %%A in (SC QUERY "SA1" ^& SC QUERY "SA2" ^& ) do sc query %%A >> C:\servicestatus.log

…但这并没有输出我需要的。

谁能帮我正确调整。

这是我最初的评论作为回答。

单行:

@(For %%A In ("SA1" "SA2" "ANOther") Do @%SystemRoot%\System32\sc.exe Query %%A) > "C:\servicestatus.log"

作为多行 :

@Echo Off
(
    For %%A In (
        "SA1"
        "SA2"
        "ANOther"
    ) Do (
        %SystemRoot%\System32\sc.exe Query %%A
    )
) > "C:\servicestatus.log"