如何使用一个充满服务器名称的记事本文件来使用批处理执行命令?

时间:2012-09-06 18:29:52

标签: windows batch-file cmd

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

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

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

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

3 个答案:

答案 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的文件