2016-06-06 6 views
0

Mein Batch-Code in Schleife ausgeführt. und ich weiß nicht, warumWarum Batch-Skript in Schleife laufen

@ECHO OFF 

REM Stop Service Adobe 
:Adobestop 
sc stop AdobeARMservice 

REM Start Service Adobe 
:Adobestart 
sc start AdobeARMservice 

REM Enable Fire wall rule Base1 
:EnableBase1 
netsh advfirewall firewall set rule name="Base1" new enable=yes 

REM Disable Fire wall rule Base1 
:DisableBase1 
netsh advfirewall firewall set rule name="Base1" new enable=no 

REM Step 1. disable fire wall rule Base1. 
netsh advfirewall firewall show rule name=Base1 | find /I "Enabled" | find "Yes"  
IF %ERRORLEVEL% NEQ 1 (
goto :DisableBase1 
) 

REM Step 2. Stop Adobe Service. 
sc query AdobeARMservice | find /I "STATE" | find "RUNNING" 
IF %ERRORLEVEL% NEQ 1 (
goto :Adobestop 
) 

REM Step 3. Start Adobe Service. 
sc query AdobeARMservice | find /I "STATE" | find "STOPPED" 
IF %ERRORLEVEL% NEQ 1 (
goto :Adobestart 
) 

REM Step 4. Enable fire wall rule Base1. 
netsh advfirewall firewall show rule name=Base1 | find /I "Enabled" | find "No" 
IF %ERRORLEVEL% NEQ 1 (
goto :EnableBase1 
) 
+0

Ich sehe keine Etiketten definiert, außer dem Code, der auf ein Etikett zeigt. Dies ist auch eine DOS-Batch-Datei, nicht PowerShell-Code. – user4317867

Antwort

0

% ERRORLEVEL% wird 0, wenn der Befehl erfolgreich abgeschlossen wird. Ändern Sie alle Ihre

IF %ERRORLEVEL% NEQ 1 (

zu

IF %ERRORLEVEL% NEQ 0 (

Vielleicht jemand die Prüfung der Fehlerprüfung und kehrt nicht die 1en auf 0en.

+0

Ich versuche es, aber nicht funktioniert. –

+0

Es gibt viele Leute auf dieser Seite, die helfen werden, aber Sie haben keine Details zur Verfügung gestellt. 1. Was soll es tun? 2. Führen Sie es lokal oder in einem Zeitplan aus? 3. Gibt es Fehlermeldungen? 4. Wie weit kommt es, bevor es wiederholt wird? 5. Ihr Design ist insofern fehlerhaft, als SC nicht auf den Abschluss des Befehls wartet. Sie warten also auf einen Stop-Befehl für AdobeARMservice ... und warten nicht darauf, dass er stoppt und sofort durchbricht, um den AdobeARM-Dienst zu starten. Vielleicht beabsichtigten Sie, ein GOTO dort zu haben, oder vielleicht sollten Sie NET STOP und NET START verwenden, was warten würde. – RGuggisberg

Verwandte Themen