Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batchdatei bei Fehler abbrechen lassen

Frage Entwicklung Batch & Shell

Mitglied: Schwinni79

Schwinni79 (Level 1) - Jetzt verbinden

01.09.2008, aktualisiert 17:16 Uhr, 11203 Aufrufe, 7 Kommentare

Hallo zusammen,

ich habe eine Batchdatei erstellt und möchte nun abschließend erreichen, dass diese bei Fehlern an der Stelle abbricht und nicht - wie normalerweise üblich- zum nächsten Befehl innerhalb des Stapels geht.

Hintergrund:

Die Datei arbeitet 5 Vorgänge ab - erst zum Schluß soll eine Kontrolldatei angelegt werden. Ist diese Datei vorhanden, wird eine Bestätigungsmail versendet.

Tritt bei Vorgang 2 aber ein Fehler auf, macht die Stapelverarbeitung, wenn möglich, bei Schritt 3 weiter und legt am Ende immer die Datei an - von Fehlern kein Hinweis.

Ziel ist es, bei einem Fehler, egal an welcher Stelle, die Datei zu beenden, den gesamten Stapelverarbeitsvorgang abzubrechen.

Wie ist das möglich?

Vielen Dank für die Hilfe!

Michael
Mitglied: 60730
01.09.2008 um 14:14 Uhr
Servus,

in solchen Fällen macht es Sinn die Batch in <"code"> <"/code"> - ohne die "" einzufügen.

Du kannst "probieren" %errorlevel% abzufragen oder if not exist oder oder oder...

Aber einfacher wird es, wenn "wir" deinen 5 Schritt Batch Schnippsel sehen und dir am "lebenden" Objekt helfen können.

Gruß
Bitte warten ..
Mitglied: Schwinni79
01.09.2008 um 15:47 Uhr
Hallo Timo,

hier der Code:

01.
@ECHO OFF  
02.
 
03.
 
04.
if not exist c:\scripts\save.log goto ausfuehren 
05.
 
06.
del C:\scripts\save.log 
07.
ECHO Datei wurde geloescht 
08.
 
09.
 
10.
:ausfuehren 
11.
 
12.
ECHO Alle Ueberpruefungen abgeschlossen - Sicherung beginnt jetzt! 
13.
 
14.
 
15.
:: Neue Datei wird geschrieben 
16.
 
17.
ECHO > C:\scripts\save.log 
18.
 
19.
:: Bildschirmausgabe 
20.
 
21.
ECHO Neue Logdatei wurde erstellt am %date% - %time% 
22.
 
23.
:: Eintrag in Logdatei 
24.
 
25.
ECHO Neue Logdatei wurde erstellt am %date% - %time% > C:\scripts\save.log 
26.
 
27.
 
28.
::------------------------------------------------------- 
29.
 
30.
:: Alte NTBACKUP Logfiles entfernen 
31.
 
32.
DEL "C:\Dokumente und Einstellungen\Administrator\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data\*.log" 
33.
 
34.
ECHO Alte NTBACKUP Logdatei enfernt >> C:\scripts\save.log 
35.
 
36.
::-------------------------------------------------------- 
37.
 
38.
ECHO NTBACKUP beginnt 
39.
ECHO NTBACKUP beginnt >> C:\scripts\save.log 
40.
 
41.
C:\WINDOWS\system32\ntbackup.exe backup "@C:\Dokumente und Einstellungen\Administrator\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data\backup.bks" /n "backup.bkf wurde erstellt durch 27.08.2008 um 12:12" /d "Satz am 27.08.2008 um 12:12 erstellt" /v:yes /r:no /rs:no /hc:off /m normal /j "backup" /l:s /f "C:\BACKUP\backup.bkf" 
42.
 
43.
 
44.
ECHO NTBACKUP abgeschlossen >> C:\scripts\save.log 
45.
 
46.
::-------------------------------------------------------- 
47.
 
48.
 
49.
CALL C:\scripts\tc-mount.bat 
50.
 
51.
 
52.
ECHO DASI-Platte eingebunden und entschluesselt >> C:\scripts\save.log 
53.
 
54.
 
55.
ECHO Dateien werden kopiert >> C:\scripts\save.log 
56.
 
57.
 
58.
CALL C:\scripts\sicherung-teil2-kix.bat 
59.
 
60.
 
61.
ECHO Alle Dateien wurden erfolgreich kopiert >> C:\scripts\save.log 
62.
 
63.
CALL C:\scripts\tc-dismount.bat 
64.
 
65.
 
66.
ECHO DASI-Platte ausgebunden und verschluesselt >> C:\scripts\save.log 
67.
 
68.
 
69.
ECHO Datensicherung abgeschlossen - %date% - %time% >> C:\scripts\save.log 
70.
 
71.
REM Logdateien zusammenführen 
72.
 
73.
ECHO LOGDATEIEN WERDEN ZUSAMMENGEFASST 
74.
 
75.
ECHO. >> result.txt 
76.
ECHO -----------ANFANG DASI-PROTOKOLL---------------------------- >> result.txt 
77.
ECHO. >> result.txt 
78.
 
79.
type save.log >> result.txt 
80.
 
81.
ECHO. >> result.txt 
82.
ECHO -----------ENDE DASI-PROTOKOLL---------------------------- >> result.txt 
83.
ECHO. >> result.txt 
84.
ECHO. >> result.txt 
85.
ECHO. >> result.txt 
86.
ECHO. >> result.txt 
87.
ECHO. >> result.txt 
88.
ECHO -----------ANFANG NTBACKUP-PROTOKOLL---------------------------- >> result.txt 
89.
ECHO. >> result.txt 
90.
 
91.
type "C:\Dokumente und Einstellungen\Administrator\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data\*.log" >> result.txt 
92.
 
93.
ECHO. >> result.txt 
94.
ECHO. >> result.txt 
95.
ECHO -----------ENDE NTBACKUP-PROTOKOLL---------------------------- >> result.txt 
96.
ECHO. >> result.txt 
97.
 
98.
ECHO LOGADATEIEN WURDEN ZUSAMMENGEFASST 
99.
 
100.
blat "C:\scripts\result.txt" -to info@domain.com -subject "Datensicherung erfolgreich!" -f info@domain.com  
101.
ECHO EMAIL WIRD VERSENDET 
102.
 
103.
pause 
104.
 
Wenn z.B. der Befehl

01.
CALL C:\scripts\tc-mount.bat
nicht ausgeführt werden konnte, weil die entsprechende Festplatte nicht erreichbat war, soll das Script abbrechen und nicht die Mail per blat.exe versenden...

Verstehst du, worauf ich hinaus will?

Michael
Bitte warten ..
Mitglied: AndreasHoster
01.09.2008 um 16:08 Uhr
Unter der Vorraussetzung, daß c:\script\tc-mount.bat einen Errorlevel zurückgibt, wenn ein Fehler aufgetreten ist, kann man das mit
01.
CALL C:\scripts\tc-mount.bat 
02.
if errorlevel 1 exit /b
erreichen.
Errorlevel 0 ist erfolgreich, 1 oder höher gibt Fehler an.
Allerdings muß ein Script entsprechend programmiert sein, damit es Errorlevels zurückgibt. Ohne Rückgabe hast Du nicht viele Chancen mitzukriegen, ob das Skript erfolgreich lief.
Bitte warten ..
Mitglied: Schwinni79
01.09.2008 um 16:16 Uhr
Hallo zusammen,

wie stelle ich das denn mit den errorlevels an - das o.g. script mountet eine mit TrueCrypt verschlüsselte externe HDD. Wo und wie kontrolliere ich denn auf errorlevel und interpetiere sie anschließend?

Michael
Bitte warten ..
Mitglied: 60730
01.09.2008 um 16:32 Uhr
Servus,

CALL C:\scripts\tc-mount.bat
"sagt" mir natürlich nicht so viel.

Ich würde es so lösen:

01.
if not exist \\meinserver\meinefreigabe>nul @echo Ziel nicht gefunden >> C:\scripts\save.log && goto end 
02.
if exist \\meinserver\meinefreigabe>nul net use x: \\meinserver\meinefreigabe && @echo Ziel gemappt >> C:\scripts\save.log 
03.
:end
Ps:
>C:\WINDOWS\system32\
kannst du dir schenken, denn "C:\WINDOWS\system32\" ist / sollte im Pfad stehen - ein
ntbackup.exe meineparameter
reicht in dem Fall auch bzw.
%windir%\system32\ntbackup.exe
"passt immer -egal - wie der Ordner von Windows nun heißt.

Gruß
Bitte warten ..
Mitglied: Schwinni79
01.09.2008 um 16:45 Uhr
Hallo Timo,

das ist die kopierte Synatx von Windows aus dem Taskplaner. Habe sie mir gar nicht so genau angesehen.

Vielen Dank für deine ausführliche Hilfe - ich werde das Script etwas umstellen und wie oben beschrieben anpassen. Die CALL- Befehle brauche ich an dieser Stelle gar nicht...

Gruß
Michael
Bitte warten ..
Mitglied: AndreasHoster
01.09.2008 um 17:15 Uhr
Wo: Direkt nach dem Befehl, bei dem ein Fehler auftreten kann.
Beispiel:
01.
ping DNS-Name 
02.
if errorlevel 1 exit /b 
03.
net send %computername% Ping erfolgreich
Wenn Ping erfolgreich ein Paket verschickt und eine Antwort bekommt, gibt Ping Errorlevel 0 zurück. Falls keine Antwort zurückkommt, dann gibt ping Errorlevel 1 zurück.
Und mit IF frage ich das ab und beende es entweder mit exit oder schicke ein Net send.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batchdatei auf einem Server ausführen mit psexec.exe (18)

Frage von imebro zum Thema Batch & Shell ...

Batch & Shell
gelöst Unterdrücken eines DOS Fenster bei Ausführen einer Batchdatei (10)

Frage von Zockervogel zum Thema Batch & Shell ...

Batch & Shell
gelöst Batchdatei für Aufgabenplanung zum Löschen von Backups (2)

Frage von Winuser zum Thema Batch & Shell ...

Batch & Shell
gelöst Hilfe bei der Erstellung einer Batchdatei (10)

Frage von peterhart zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Linksys wrt1200ac v2 mit dd-wrt: keine vlan-einstellungen im GUI (15)

Frage von Pixi123 zum Thema Router & Routing ...

E-Business
Wo tragt ihr eure privaten Termine ein? (13)

Frage von honeybee zum Thema E-Business ...

Entwicklung
gelöst Tipp für Anfänger- Wie würdet ihr automatischen Mailversand umsetzen? (12)

Frage von Cloudyme zum Thema Entwicklung ...

Windows Server
Terminalserver starten willkürlich neu (12)

Frage von thaefliger zum Thema Windows Server ...