У меня есть довольно простая задача для достижения, но я получаю полный noob в сценариях командной строки. Я столкнулся с ошибкой и нашел некоторые из основных команд для взаимодействия с сервисами на компьютере с Windows, но ничто в аспектах проверки, запущена или остановлена служба. Я надеюсь, что кто-то может помочь со сценарием, который остановит 3 службы, убедитесь, что все 3 остановлены, и как только все остановлены, попробуйте снова их вернуть. Мне нужно убедиться, что все 3 остановлены, прежде чем запускать любую из них. Я знаю, как остановить и начать услуги, но остальное - это место, где я застрял.Как остановить службу Windows, проверить, была ли она остановлена, и запустить ее снова с помощью Cmd Line?
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
Хорошо я взял выше сценарий и переделал его в какое-то время loop..it Doesnt сделать петлю правильно? Он проверил состояние и затем выходит :(
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
значения переменных в пакете должно быть сделано так: 'установить вар = Foo bar' (без пробелов вокруг' = ') –
Хорошо, я изменил три оператора набора, чтобы не было пробелов, чтобы он соответствовал формату var = xxx. – user1732364