11193
Goto Top

Batch Datei zeigt sich ganz kurz und schließt dann wieder

Hallo,

ich habe eine Batchdatei erstellt die auf verschiedenen Rechnern im
Autostart liegt.

@echo off
echo Es wird eine Sicherung der test.mdb durchgefuehrt!
echo -----------------------------------------------------
ping 192.168.123.25 -n 10 -w 1000 > NUL
xcopy "K:\test.mdb" c:\test.mdb /Y /F
xcopy "K:\test.archiv.mdb" c:\test.archiv.mdb /Y /F
ping 192.168.123.25 -n 1 -w 1000 > NUL
exit

Die Batchdatei läuft auch bei fast allen Rechnern problemlos
beim Start des Rechners ab. Nur bei einigen wenigen Rechnern,
die eigentlich alle gleich konfiguriert sind, passiert folgendes:
Man sieht ganz kurz das schwarze Fenster und dieses schließt
dann aber direkt wieder ohne die Batchdatei auszuführen.

Woran kann das liegen???

Wie gesagt, auf den meisten Rechnern läuft es. Auf den Rechnern
läuft Windows XP mit dem aktuellen SP.

Content-ID: 18084

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

Ausgedruckt am: 23.11.2024 um 04:11 Uhr

azubaer
azubaer 20.10.2005 um 13:40:35 Uhr
Goto Top
vielleicht an einer geöffneten datenbankdatei?
duddits
duddits 20.10.2005 um 13:43:17 Uhr
Goto Top
Hi,

probier bitte erst mal bei den Rechnern bei denen es nicht funktioniert ob du die so über Eingabeaufforderung an pingen kannst.
Wenn das klappt probier mal ob du diese Sicherung manuell vornhehmen kasstn vielleicht ist bei der Rechte konfiguration ein Fehler.

Gruß duddits
11193
11193 20.10.2005 um 13:43:25 Uhr
Goto Top
Nein, die Datenbank ist geschlossen wenn Sie kopiert wird. Es handelt sich schon um
ein Backup welches nur vom Server auf den lokalen Festplattenspeicher kopiert werden soll.
11193
11193 20.10.2005 um 13:45:56 Uhr
Goto Top
Wie mache ich das pingen? Bin ich den Sachen nicht so ganz so gut informiert.
Das manuelle Kopieren geht aber auf den besagten Rechnern.
azubaer
azubaer 20.10.2005 um 13:49:47 Uhr
Goto Top
du benutzt ein script dessen funktionsweise (ping) du nicht kennst?????
11193
11193 20.10.2005 um 13:52:35 Uhr
Goto Top
??? Ping localhost oder was? Wie gesagt. Ich schreibe nicht hauptberuflich Batchdateien. Das ist meine erste....
superboh
superboh 20.10.2005 um 14:04:21 Uhr
Goto Top
Lass in der Batch testweise mal das @echo off weg oder schreibe ein REM davor. Und füge mal den Befehl pause ein. Dann siehst Du die Ausgaben des Scripts und es bleibt an der Pause stehen bis Du eine Taste drückst.
So kannst Du den Fehler finden.

Gruss,
Thomas
duddits
duddits 20.10.2005 um 15:39:00 Uhr
Goto Top
Hi,

Also mit pingen meine "ping Rechnernamederangepingtwerdensoll"
du pings in deinem Script doch auch. Du kannst auch ping IPAdrese nehmen ich würde aber zuerst den NetBiosNamen bzw. DNS-Namen anpingen.

Gruß duddits
duddits
duddits 20.10.2005 um 15:42:38 Uhr
Goto Top
Hi,

da bin ich schon wieder!
Wenn das mit pause nicht funktioniert was superboh sagte (das ist mir schon passiert, als im Script Fehlermeldungen ausgegeben wurden) dann starte das Script aus der Eingabeaufforderung (cmd).

GRuß duddits
ketchup
ketchup 20.10.2005 um 20:40:37 Uhr
Goto Top
hi,

als erstes würde mich mal interessieren, wozu die beiden pings in der batch dienen sollen?
als erreichbarkeits-check können sie ja nicht dienen, da du keinen errorlevel oder dergleichen abfragst.

mögliche fehler beim kopieren könnten sein, dass die dateien (inkl. pfad) auf den betroffenen rechnern einfach nicht existieren. bzw. das ziel nicht existiert.

wie schon von superboh gemeint ... das @echo off weglassen bzw. mit "rem" auskommentieren.
dann solltest du etwaige fehlermeldungen sehen.

j.
Biber
Biber 21.10.2005 um 01:05:11 Uhr
Goto Top
Vorbereitungen:
1. Alle Fenster außer diesem Browser-Fenster schließen.
2. Das Browserfenster soweit verkleinern, dass es nur die obere Bildschirmhälfte einnimmt.
3. Über Start->Ausführen->Eingeben von "cmd"->Ok ein CMD-Prompt-Fenster öffnen.
4. Dieses in der unteren Bildschirmhälfte plazieren.

Das eigentliche Debuggen:

5. Im Browser-Fenster: In dem oben geposteten Batchschnipsel den Mauszeiger auf Zeile 2 (ganz wichtig!!) erstes Zeichen stellen
6. Mit gedrückter linker Maustaste mit dem Cursor bis zum Ende der Zeile gehen, rechte Maustaste drücken und aus dem Kontextmenü "Kopieren" auswählen und klicken
7. In das CMD-Prompt-Fenster wechseln, den Mauscursor auf den Beginn einer neuen Zeile bewegen und rechte Maustaste kurz antippen
8. Eventuelle Fehlermeldungen sorgfältig notieren und gegebenfalls Handbücher oder Dr. Goggle konsultieren. Falls fehlerverursachende Zeile gefunden, weiter bei Schritt 11.
9. Wieder in das obere Fenster wechseln und mit dem Mauscursor auf das erste Zeichen der Folgezeile positionieren. Falls keine Folgezeile im Batch vorhanden, weiter bei 11.
10. Weiter bei Schritt 6.
11. Glückwunsch, Du hast alle 8 komplexen Batchzeilen geschafft. Fertig für heute.

Hinweis: Für Linkshänder-Mäuse und anderssprachige Betriebssytem-Versionen gelten geringfügige Variationen der Debug-Anleitung.

~~~
Im Ernst, bei einer Batchdatei mit einer Handvoll Zeilen kann man/frau doch eben mal die potentiell fehlerverdächtigen Zeilen direkt am CMD-Prompt eintippen.
Oder besser noch, eventuelle Fehler vorher abfangen.
Was kann denn schiefgehen?
- User hat kein Recht, Batches auszuführen (Wahrscheinlichkeit < 1%)
- User hat kein Recht, Ping.exe auszuführen (Wahrscheinlichkeit < 1%)
- User hat gar kein Ping.exe auf dem Rechner bzw. im Pfad (Wahrscheinlichkeit < 1%)
- User hat kein Recht, xcopy.exe auszuführen (Wahrscheinlichkeit < 1%)
- User hat gar kein xcopy.exe auf dem Rechner bzw. im Pfad (Wahrscheinlichkeit < 1%)
- User hat kein Laufwerk K: (Wahrscheinlichkeit > 37%%)
- K: ist vorhanden, Datei test.mdb oder test.archiv.mdb werden nicht gefunden (17,3%)
- User hat kein Recht, auf das C:-Laufwerk (Root!) zu schreiben (ganz viele %!)

Fast alles davon lässt sich abfangen und sollte in den Batch rein.
Wenigstens die Minimalprüfungen bei den Quell-Dateien
If exist K:\test.archiv.mdb xcopy K:\test.archiv.mbb c:\test.archiv.mdb /Y /F 
...

Grüße
Biber