2016-04-12 12 views
2

私は私が「SERVICE_STOPPED」コマンド「NSSMステータスMYSERVICE」リターンを知っているので、コマンドWindowsバッチ:コマンドとERRORLEVEL

Setlocal EnableDelayedExpansion 
... 
nssm status MyService | find "SERVICE_STOPPED" 
if !errorlevel! equ 0 (
    echo MyService is not running 
) 

の結果を評価するために、findコマンドとERRORLEVELを使用しようとしているを見つけますエラーレベルを0に設定することができます。 代わりに1に設定されています。 なぜですか?

+0

'nssm status MyService |もっと見る| "SERVICE_STOPPED"を見つけますか?私は 'more'にいくつかの変換機能があると思います... – aschipfl

答えて

1

削除された回答は、nssmのエンコーディングを示しました(私は持っていないので、確認できません)。すべての文字は2バイトで符号化されます(2番目は0x00です)。したがって、この(醜いと思われる)回避策はうまくいくはずです:

nssm status MyService | findstr "S.E.R.V.I.C.E._.S.T.O.P.P.E.D" 
if !errorlevel! equ 0 (
    echo MyService is not running 
)