0

私はかなり単純なタスクを達成する必要がありますが、コマンド ライン スクリプトは完全に初心者です。私はグーグルで調べて、Windowsマシン上のサービスと対話するための基本的なコマンドのいくつかを見つけましたが、サービスが開始されているか停止されているかを確認する面では何も見つかりませんでした. 誰かが3つのサービスを停止し、3つすべてが停止していることを確認し、すべてが停止したら..すべてを再開するスクリプトを手伝ってくれることを願っています。バックアップを開始する前に、3 つすべてが停止していることを確認する必要があります。サービスを停止および開始する方法は知っていますが、残りは立ち往生しています。

net Stop S1
net Stop S2
net Stop S3

//Check if all 3 are stopped

//If all 3 have been stopped successfully
net start s1
net start s2
net start s3

私はこれを思いついたが、構文が正しいとは思わない...

net stop PriceIdxImport
net stop RawDataImportDB
net stop DBDailyTrxProcessService

set Pstate = sc query PriceIdxImport state
set Rstate = sc query RawDataImportDB state
set Dstate = sc query DBDailyTrxProcessService state

if Pstate == Inactive if Rstate == Inactive if Dstate == Inactive GOTO sub_StartServices

:sub_StartServices
net start PriceIdxImport
net start RawDataImportDB
net start DBDailyTrxProcessService

よし、上記のスクリプトを while ループに変更しました。ループが正しく行われませんか? ステータスを確認してから終了します:(

  echo on
 net stop PriceIdxImport
 net stop RawDataImportDB
 net stop DBDailyTrxProcessService
 ping -n 5 127.0.0.1 > nul
 set Pstate = Sc query PriceIdxImport  |find /i "STOPPED"
 set Rstate = sc query RawDataImportDB |find /i "STOPPED"
 set Dstate = sc query DBDailyTrxProcessService |find /i "STOPPED"
 set Condition="false"

 while Condition="false";do if Pstate neq "" ( if Rstate  neq "" (if  Dstate neq ""          GOTO sub_StartServices));done
exit

:sub_StartServices
set Condition="true"
net start PriceIdxImport
net start RawDataImportDB
net start DBDailyTrxProcessService
4

1 に答える 1

1

このスクリプトを試してください

echo on
:sub_StopServices    
net stop PriceIdxImport
net stop RawDataImportDB
net stop DBDailyTrxProcessService

set Pstate = Sc query PriceIdxImport  |find /i "STOPPED"
set Rstate = sc query RawDataImportDB |find /i "STOPPED"
set Dstate = sc query DBDailyTrxProcessService |find /i "STOPPED"

if Pstate neq "" ( if Rstate  neq "" (if  Dstate neq "" (GOTO sub_StartServices) else (GOTO sub_StopServices) ) else (GOTO sub_StopServices)) else (GOTO sub_StopServices)
exit
:sub_StartServices
net start PriceIdxImport
net start RawDataImportDB
net start DBDailyTrxProcessService
于 2013-02-27T16:43:07.017 に答える