0

w7 では、後でリモート コンピューターでこれを行いたいため、psservice を使用してサービスのステータスを受け取りたいと考えています。

最初にローカル マシンでバッチ スクリプトを動作させようとします。

2 つの問題があります。最初の問題は、「D:/PsService.exe クエリ サーバー」が「サーバー」という名前を含むすべてのサービスをクエリすることです。特定の 1 つのサービス (この例では "Server" という名前のサービス) のみをクエリしたい。

もう 1 つの大きな問題は、バッチ スクリプトがまったく機能しないことです。それはただ「死ぬ」だけです(一時停止コマンドを実行せずにCMDウィンドウがすぐに閉じてしまうため、デバッグが非常に困難になります)。

サービスのステータスを変数に保存したいので、後で例を比較するために使用します (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が死ぬのか、何が間違っているのですか?

4

2 に答える 2

2

以下はあなたのために働きます

   @ECho off
   for /F "tokens=3 delims=: " %%H in ('D:/PsService.exe query "SERVICE" ^| findstr "        STATE"') do echo %%H
于 2013-02-18T22:12:31.883 に答える
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
于 2013-06-02T17:34:39.093 に答える