批处理脚本获取服务状态

时间:2013-02-18 20:42:45

标签: batch-file

在w7上我想使用psservice接收服务的状态,因为我想稍后在远程计算机上执行此操作。

我首先尝试让批处理脚本在本地计算机上运行。

我有两个问题:第一个问题是“D:/PsService.exe查询服务器”将查询包含名称“Server”的所有服务。我只想查询一个特定的服务(在这个例子中名为“Server”。

另一个更大的问题是我的批处理脚本根本不起作用。它只是“死”(CMD窗口立即关闭而不执行pause命令,这使得调试非常困难)。

我想将服务的状态存储在变量中,稍后我会用它来比较示例(IF%Status%EQ“RUNNING”)。

到目前为止我的代码:

FOR /F token=3 %%i IN ('D:/PsService.exe query Server 2> NUL | find /I "STATE"') DO   ( SET Status=%%i )
echo %Status%
pause

为什么CMD会死,我做错了什么?

2 个答案:

答案 0 :(得分:1)

以下将为您效劳

   @ECho off
   for /F "tokens=3 delims=: " %%H in ('D:/PsService.exe query "SERVICE" ^| findstr "        STATE"') do echo %%H

答案 1 :(得分:1)

echo off
set /P srvname="Enter the servername  :"
echo %srvname%
set /P srvice="Enter the Service name :"
echo %srvice%
psservice.exe \\%srvname% query  %srvice% >a.txt
a.txt

pause