我使用sc命令查询机器上运行的服务,并且使用的代码类似于:
sc \\"server_name" query | find "SERVICE_NAME" > servicelist2.txt
所以基本上所有的服务器名都列在这个记事本文件中。有100多个。手动输入每个名称并编写100多行代码太难了。有没有办法可以使用批处理本身来指向记事本文件,并遍历写在其中的所有服务器名称,然后将它们放回“sc”命令?
编辑:如果不明显的话,我会在Windows上播放。使用上述的批处理脚本。答案 0 :(得分:2)
假设您在同一目录中有一个名为 servers.list 的文件,您可以使用:
for /f %%a in (%~d0%~p0servers.list) do (
ECHO %%a > servicelist2.txt
sc \\%%a query | find "SERVICE_NAME" > servicelist2.txt
)
答案 1 :(得分:1)
您可以使用for /f执行此操作:
OR /F "usebackq tokens=*" %%G IN ("C:\My Documents\servers.txt") DO (
sc \\%%G query | find "SERVICE_NAME" > servicelist2.txt
)
答案 2 :(得分: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中指定的每个服务名称,并将其输出到与批处理文件相同的目录中名为output.txt的文件