1

我使用 sc 命令查询机器上运行的服务,并且使用的代码类似于:

      sc \\"server_name" query | find "SERVICE_NAME" > servicelist2.txt

所以基本上所有的服务器名称都列在这个记事本文件中。其中有 100 多个。手动输入每个名称并编写 100 多行代码太难了。有没有办法我可以使用批处理本身指向记事本文件并遍历其中写入的所有服务器名称,然后将它们放回“sc”命令?

编辑:如果不明显的话,我在 Windows 上。使用上述批处理脚本。

4

3 回答 3

2

假设您在同一目录中有一个名为servers.list的文件,您可以使用它:

for /f %%a in (%~d0%~p0servers.list) do (
  ECHO %%a > servicelist2.txt
  sc \\%%a query | find "SERVICE_NAME" > servicelist2.txt
)
于 2012-09-06T18:37:19.147 回答
1

你可以用for /f做到这一点:

OR /F "usebackq tokens=*" %%G IN ("C:\My Documents\servers.txt") DO (
 sc \\%%G query | find "SERVICE_NAME" > servicelist2.txt
)
于 2012-09-06T18:37:12.740 回答
0
@echo off
echo Starting to list query services...
for /f %%i in (servieslist2.txt) do sc query %%i > output.txt
echo Finished query services...

以上将遍历 serviceslist2.txt 中指定的 100 个服务名称中的每一个,并将其输出到与批处理文件位于同一目录中的名为 output.txt 的文件中

于 2013-10-16T16:32:08.823 回答