2017-09-18 2 views
1

Ich möchte fragen, wie Sie den Code auf Batch-Skript zu tun, wie dieseWie erkennt man, ob das Stapelscript plötzlich schließt oder nicht?

IF(Batch script file suddenly close) 
ECHO SCRIPT FAIL>>LOG.txt 
ELSE (
ECHO DO PROCESS LIKE ALWAYS 

ich will es erkennen, weil ich in jeder Protokolldatei speichern müssen, wenn ein Fehler während des Prozesses der XCOPY Kopie auftreten/Einfügen.

+3

Sie ... wollen das Skript laufen zu halten, wenn es geschlossen wird plötzlich? Was? – SomethingDark

+0

Ich meine, wenn das Skript plötzlich geschlossen ist, wird es in log.txt für Fehler aufzeichnen auftreten –

+3

Wie kann ein Skript wissen, ob es unerwartet schließt? Das Skript läuft nicht mehr, es gibt also keine Möglichkeit, etwas zu tun. Es ist so, als ob tote Menschen nicht wissen, dass sie tot sind. – SomethingDark

Antwort

2

Was passiert, wenn Sie eine Batch-Datei aufrufen, um die Batch-Datei auszuführen? Dies wird nicht dafür sorgen, dass die Situation der aktuell ausgeführten Shell verloren geht oder auf irgendeine Art und Weise ausfällt.

Wenn dies nicht ausreichend ist, müssen Sie wahrscheinlich das Skript auf das Vorhandensein einer Datei überprüfen lassen, die nach erfolgreichem Abschluss geschrieben wurde. Wenn die Erfolgsdatei nicht existiert, bereinigen Sie sie nach Bedarf.

1.bat

@ECHO OFF 
SETLOCAL 

CALL 2.bat 
SET "EXITCODE=%ERRORLEVEL%" 
IF %EXITCODE% NEQ 0 (
    ECHO ERROR: Script 2.bat failed, ERRORLEVEL = %EXITCODE% 
) ELSE (
    ECHO NB: Back from 2.bat, process normally 
) 
EXIT /B %EXITCODE% 

2.bat

@ECHO OFF 
ECHO NB: Starting 2 
ping -n 10 localhost 
ECHO NB: in 2 ERRORLEVEL is %ERRORLEVEL% 
EXIT /B %ERRORLEVEL% 
Verwandte Themen