Ich habe nur Probleme mit einer Charge und brauche eine Klarstellung zu "IF", "ELSE" und "GOTO".
@echo off
sc \\RemoteServer stop "My_Service"
:query
sc \\RemoteServer query "My_Service"
if %state% == 1 goto start # state =1 indicates service is stopped
else goto query
:start
sc \\RemoteServer start "My_Service"
Ich möchte also, dass der Dienst angehalten wird, der Batch den Status des Dienstes abfragt und je nach Zustand mit dem nächsten Schritt fortfährt. Dies ist notwendig, da der Dienst ziemlich lange dauert, um zu stoppen. Wenn der Dienst steckt 3 STOP_PENDING
dann ist die sc start
wird versagen.
Kann jemand erklären, warum mein GOTO versagt, oder möglicherweise eine bessere Methodik anbieten?
TNA
quelle
goto query
so wie:goto query)
Die Verwendung eines Editors wie Notepad ++ mit Syntaxhervorhebung hilft auch bei der Behandlung von Blöcken in Batch-Skripts. Und was auch immer Sie tun, verwenden Sie keinen Apostroph als Kommentarzeichen. Die einzigen gültigen Kommentare in Batch-Skripten sindREM
und::