如何在工作站上自动执行Tasklist命令以检查X个服务器上的特定进程?

时间:2012-02-15 21:18:09

标签: batch-file automation cmd tasklist

我正在尝试检查我的XenApp服务器上的spoolsv.exe进程状态。我已经将命令从我的XP工作站单独运行,但似乎无法通过文本文件进行迭代。这是我到目前为止所做的,将在我的CMD屏幕上填充服务器X-XX的内容是什么?

@echo off

FOR /F "usebackq" %%G IN ("C:\Documents and Settings\userid\Desktop\Scripts\servers.txt") DO echo tasklist /S %%G /u domain\userid | find "spoolsv.exe"

pause

我似乎无法让它正常运行,有时它只会在记事本中弹出我的servers.txt文件,甚至无法运行。我错过了什么?

1 个答案:

答案 0 :(得分:1)

如图所示,任务列表永远不会运行。 “do echo tasklist ...”片段表示文字字符串“tasklist / S server-one ...”正在回显到stdout。由于这些文字字符串都不包含“spoolsv.exe”,因此“find”命令将不匹配任何内容。

请尝试以下方法:

@echo off

FOR /F "usebackq" %%G IN ("C:\Documents and Settings\userid\Desktop\Scripts\servers.txt") DO call :RunTasklistForOneServer %%G

pause
goto :EOF

:RunTasklistForOneServer

set ServerName=%1
echo Calling server %ServerName%
tasklist /S %ServerName% /u domain\userid | find "spoolsv.exe"