GELÖST *.bat stürzt ab beim verbinden von Laufwerken

Diskutiere *.bat stürzt ab beim verbinden von Laufwerken im Programmierung Forum im Bereich Software Forum; Hallo Freunde, ich habe ein kleines Problem. Lasst es mich schildern. Ich verknüpfe über ein *.bat Datei, 4 Rechner, wo jeweils ein Ordner...
M

Martin

Threadstarter
Mitglied seit
02.12.2008
Beiträge
493
Standort
nähe Wittenburg
Hallo Freunde,

ich habe ein kleines Problem. Lasst es mich schildern.

Ich verknüpfe über ein *.bat Datei, 4 Rechner, wo jeweils ein Ordner freigegeben ist.

net use k: \\pc01\sequenzen
net use l: \\pc02\sequenzen
net use m: \\pc03\sequenzen
net use n: \\pc04\sequenzen

Wenn alle Rechner an sind, ist es kein Problem, dann bindet er mir alle schön fleißig ein. Aber insofern z.B. Pc02 ausgeschaltet ist, bricht meine Batch, Pc03/Pc04 komplett ab. Es wird nur Laufwerk Pc01 eingebunden.

Nun meine Frage, ist es möglich, das nach 5sek Aufbauversuch, der Rechner übersprungen wird und er mit den anderen fortsetzt?

Gruß Martin
 
HaraldL

HaraldL

Mitglied seit
26.07.2006
Beiträge
5.817
Standort
Niederbayern
Ich habe in einem ähnlichen Fall das auf die Schnelle so gelöst:

ping -n 1 -w 100 192.168.1.5 >NUL
if errorlevel 1 goto keinpc5

... befehle für pc5

:keinpc5
also ein einzelner (-n 1) Ping mit Zeitlimit (-w 100), wenn keine Antwort kommt (errorlevel 1) wird der Block übersprungen. Müsstest du halt für jeden PC so einen Block anlegen. Ich hatte hier absichtlich die feste IP eingesetzt weil es beim Rechnernamen teilweise auch länger gedauert hab wenn der aus war. So klappte es schnell und seit über einem Jahr ohne Probleme. Wenn die Rechner teilweise länger zum Antworten brauchen kannst du das Timeout hinter -w erhöhen.
 
M

Martin

Threadstarter
Mitglied seit
02.12.2008
Beiträge
493
Standort
nähe Wittenburg
Also du hast das der IP gelöscht, kann es sein, wenn ich den Namen angebe, dass er es erst über den Server per DNS auflösen muss?
 
HaraldL

HaraldL

Mitglied seit
26.07.2006
Beiträge
5.817
Standort
Niederbayern
Mußt du halt testen, prinzipiell geht es auch über den Namen. Da wo ich obiges Beispiel ausprobierte gab es keinen Server sondern nur ein paar PCs als Arbeitsgruppe. Und da hat er beim Ping auf den Namen ewig gesucht und gewartet, per IP ging es blitzschnell.
 
DiableNoir

DiableNoir

Mitglied seit
18.01.2004
Beiträge
6.069
Eine andere Möglichkeit wäre die Verwendung des Start-Befehls, also:
Code:
start /B net use m: \\pc03\sequenzen
Das hat zu Folge, dass alle deine Netzlaufwerke gleichzeitig und unabhängig voneinander eingehängt werden. Falls deine Batch also nicht auf diese Laufwerke zugreifen muss, ist das der schnellste Weg, selbst dann wenn alle Netzwerkrechner erreichbar sind.
 
M

Martin

Threadstarter
Mitglied seit
02.12.2008
Beiträge
493
Standort
nähe Wittenburg
Eine andere Möglichkeit wäre die Verwendung des Start-Befehls, also:
Code:
start /B net use m: \\pc03\sequenzen
Das hat zu Folge, dass alle deine Netzlaufwerke gleichzeitig und unabhängig voneinander eingehängt werden. Falls deine Batch also nicht auf diese Laufwerke zugreifen muss, ist das der schnellste Weg, selbst dann wenn alle Netzwerkrechner erreichbar sind.

Kann der Antwort nicht ganz folgend. :unsure Das heißt, es müsste jeweils eine *.bat bestehen. Also es sollen nicht alle Befehle in einer *.bat stehen, korrekt?

Dem zufolge sieht die *.bat so aus.

Code:
start /B net use m: [URL="file://pc01/sequenzen"]\\pc01\sequenzen[/URL]
start /B net use n: [URL="file://pc02/sequenzen"]\\pc02\sequenzen[/URL]
start /B net use l: [URL="file://pc03/sequenzen"]\\pc03\sequenzen[/URL]
start /B net use k: [URL="file://pc04/sequenzen"]\\pc04\sequenzen[/URL]
 
DiableNoir

DiableNoir

Mitglied seit
18.01.2004
Beiträge
6.069
Nein, du brauchst nicht mehrere Batch-Dateien. Du kannst alle Net Use-Befehle ruhig in ein und die selbe Datei geben. (So wie in deinem Codeausschnitt.)

Ich erkläre es nochmal: Der Start-Befehl erstellt einen neuen Prozess, der unabhängig von deiner Batch-Datei läuft und den Net Use-Befehl ausführt. Das heißt, es wird gar nicht darauf gewartet bis Net Use ausgeführt wurde. Das heißt, alle Netzlaufwerke werden nahezu gleichzeitig verbunden. Tritt irgendwo ein Fehler auf, hat das keine Auswirkungen auf die anderen Prozesse.

Das ist effizienter als die Netzlaufwerke nacheinander zu verbinden und löst nebenbei dein Problem. ;)

Ein Seiteneffekt auf das ich eben hinweisen wollte ist, dass die 4 Startbefehle ausgeführt sind, bevor die Netzlaufwerke verbunden sind. Wenn deine Batchdatei nichts anderes macht als die Netzlaufwerke zu verbinden ist das kein Problem. Dann ist das Batchprogramm halt fertig, bevor die Net Use-Befehle ausgeführt wurden.
 
Thema:

*.bat stürzt ab beim verbinden von Laufwerken

*.bat stürzt ab beim verbinden von Laufwerken - Ähnliche Themen

  • Kann keine .bat Datei ausführen

    Kann keine .bat Datei ausführen: Hallo, ich habe ein Problem, ich musste heute feststellen, dass ich keine .bat datei ausführen kann. Normalerweise, so ist es zumindest in der...
  • Gleichzeitig mehrere Windows Programme starten - So öffnet man Programme per BAT Datei

    Gleichzeitig mehrere Windows Programme starten - So öffnet man Programme per BAT Datei: Der Autostart ist sehr praktisch wenn man verschiedene Programme direkt nach dem Bootes des PCs zur Verfügung haben will. Was aber, wenn man...
  • Gruppenrichtlinien und gpedit.msc in Windows 10 Home über BAT Datei installieren und öffnen

    Gruppenrichtlinien und gpedit.msc in Windows 10 Home über BAT Datei installieren und öffnen: Eine Option die in Windows 10 Home zwar fehlt, die aber eigentlich auch viele nicht brauchen und deswegen auch nicht vermissen, sind die...
  • Unterschied EXCEL vs. BAT

    Unterschied EXCEL vs. BAT: Hey Zusammen, mir wurde neulich von einem Kollegen total begeistert von Business Analytics Tools vorgeschwärmt, für mich hat sich deren...
  • Windows Sicherheitswarnung .bat

    Windows Sicherheitswarnung .bat: Guten Abend, mich würde interessieren ob es möglich ist eine Batch-Datei zu den Ausnahmen von Windows hinzuzufügen? Da ich ein Programm habe...
  • Ähnliche Themen

    Oben