2017-12-18 1 views
0

複数の再起動または特定のウィンドウサービスの停止後にマシンをシャットダウンできるbatchスクリプトを作成しました。複数の再起動またはサービスの停止後にマシンをシャットダウンするバッチスクリプトの作成

しかし、私はを手動で実行するのではなく、スクリプトを自動的に動作させる方法については全く考えていません。私はservices.mscの下にそれを設定し、それをrun a program (batch file)に設定してスクリプトファイルをテストしようとしましたが、サービスを3回手動で停止または再開したとき、バッチスクリプトはまったく実行されませんでした。

だから、services.mscは、サービスを停止または再起動する代わりにスクリプトを実行する前に障害を認識することしかできないと考えられます。もしそうなら、スクリプトを実行する他の方法はありますか?

これは私のバッチスクリプトです:

sc query "AVG Antivirus" | find "STOPPED" 
    if "%ERRORLEVEL%"=="3" 
    (
     shutdown.exe /s /t 00 
    ) 
+1

質問はUnixに全く関係していないので、私は 'bash'タグを削除しました – Allan

答えて

0

%errorlevel%は "カウント" はありません - それは、常に "成功" とNOT 0ため0を与える(通常1が、コマンドによって異なります)。だから、あなたは自分のカウンターを実装する必要があります「(ここではfind)前のコマンドが失敗した場合」など

set count=0 
:loop 
    sc query "AVG Antivirus" | find "STOPPED" && set /a count+=1 
    if %count% geq 3 goto :continue 
    timeout /t 5 
goto :loop 
:continue 
shutdown.exe /s /t 00 

||作品を

私は(反対は&&は、「前のコマンドが成功したかどうか」です)サービスが実行中または停止中である必要があるかどうかは不明です。違いはちょうど&&または||を使用しています)

関連する問題