67860
Goto Top

Umschiffen von folgendem Problem -xyz- ist syntaktisch an dieser Stelle nicht verarbeitbar - und raus-bist-du.

Hallo.

Danke für die Aufnahme bei Administrator.de.

Ich bin schon seit längerem an einem Projekt, das einen Diskimager per Batch steuert. Es liest seine Parameter über eine Textdatei ein, checkt, ob Quelle/Ziel verfügbar ist, erstellt abschließend ein Protokoll und tut sonst noch diverse Dinge. Durch Tipps und Schnipsel von Adminstrator.de und Einsatz weiterer externer Programme versuche ich, dieses Script auf möglichst vielen Rechnern zum Laufen zu bekommen. Win XP Home/Pro, Server 2000/2003, Vista (Wobei ich noch nicht alle Vista Ausgeburten getestet habe). Nun passiert es gelegentlich, dass mir immer wieder mal ein PC zwischen die Finger kommt, der ein Problem bei for-Schleifen und Set-Kommandos hat. Es tritt oben genannte Fehlermeldung auf, und statt dass die Batch nun weiterhumpelt und die Datensicherung irgendwie erledigt, beendet sie sich einfach. Ich habe dann meist sehr wenig Zeit für Troubleshoot und muss dann immer fix die Batch schnell umstricken und beispielsweise auf den Part "Datums- und Zeitvariablen im Batch - von Biber" (hier taucht der Fehler am meisten auf) verzichten.

Nun habe ich begonnen, diversen Code in kleinere Batches auszulagern und mit Call Aufrufen zu arbeiten, da es das Hauptscript übersichtlicher macht und ich ggfs. flexibler auf unvorhergesehene Ereignisse reagieren kann. Womit ich nun langsam zum Ende meines Romans komme: Wenn ich nun innerhalb eines Calls einen "Austeiger" habe, brauche ich sicher nicht zu schildern, was mit meinem Hauptscript passiert. Mit Start /wait ist genauso Essig, weil mein Script dann halt eben auf die abgestürzte Dose wartet. Da die Zeitmaschine (so habe ich das geile Script von Biber genannt) eine absehbare Zeit dauert, könnte ich das Ding mittels einer Kombination aus Start %pfad%\zeitmaschine.bat /s/q und ping localhost -n x lösen. Zusätzlich könnte ich eine vorher erstellte Kontrolldatei am Ende der mittels Call aufgerufenen Batch löschen lassen und bei nichtvorhandensein von einem erfolgreichen Verlauf ausgehen. Ist aber alles Käse.

Wobei ich die Leser hier um Mithilfe bitte: Ich würde gern aus meinem Datensicherungsscript heraus weitere Dos-Boxen starten, deren unvorhergesehene Abbrüche gleich welcher Art nicht den weiteren Verlauf meines Hauptscriptes stören. Außerdem müsste noch einen Timeout für den Fall einer hängenden Box rein (Stichwort Dienste beenden und einer will nicht). Den Mißerfolg (evtl. auch den Erfolg) würde ich gern mittels einer frei definierbaren Variabel weiterverarbeiten können. Bitte denkt dran: ich möchte den Stein nicht aus dem Weg räumen, sondern ihn umgehen. Lässt sich diese Nuß knacken?

Mein Wunschdenken:

Datensicherungssrcipt DaSi.bat verrichtet seine Arbeit.
DaSi.bat startet mit call die kontrollscript.bat und wartet auf dessen Rückmeldung.

kontrollscript.bat startet DasHierFunktNormalerweiseKönnteAberMitSyntaxErrorInsNirvanaVerschwinden.bat
kontrollscript.bat wartet auf dessen Ausfürung und gibt folgende Variablen zurück:
%erfolg%, %misserfog%, %DieDox-BoxIstNichtAbgestürtztAberSchonSeitEinerHalbenStundeAmGangeUndWirdDaherBeendet%

DaSi.bat nimmt Notiz davon, handelt entsprechend und macht die Datensicherung.

Grüße,

Kahlimero

Content-Key: 93005

Url: https://administrator.de/contentid/93005

Printed on: April 23, 2024 at 16:04 o'clock