Jump to content

Bitte um Hilfe bei Batchscript...


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

Hi ihr,

 

ich hab wieder mal Probleme mit einem geliebten Batchskript.

Und zwar soll das skript ein Netzlaufwerk verbinden sofern noch nicht vorhanden und per robocopy files kopieren. Sieht vom Aufbau her so aus:

 

setlocal enabledelayedexpansion
net use | find <laufwerk>

if %ERRORLEVEL%==1 (
  <Verbinde Laufwerk>
  set returncode=!ERRORLEVEL!
  if not !RETURNCODE!==0 (
     echo Fehler aufgetreten > logfile
     echo msgbox "Fehler" ^& Chr(13) ^& "zweite Zeile" > in den autostart
     exit 1
  ) ELSE (
     Files kopieren...
  )
) ELSE (
  Files kopieren...
)

Nun verhält sich diese Mistsau so (sorry aber ich bin echt schon so sauer), dass alles perfekt funktionert wenn das laufwerk gefunden werden kann. Wenn es allderings nicht gefunden wird, wird es zwar noch erfolgreich verbunden, aber dann (und jetzt kommts) spring er trotzdem in if not !RETURNCODE!==0 ( rein. Und als ob das nicht schon falsch genug wäre: zusätzlich wird dabei nur der 'exit' Befehl ausgeführt und nicht die echo's die noch davon stehen?

 

:confused::confused::confused::confused:

Geschrieben

Was nichts an meiner Frage ändert:

Was ist wenn das Verbinden aus irgendeinem Grund nicht funktioniert?

 

Das es einfacher auch geht ist mir schon klar, aber so wäre es auch unsauberer. Irgendeine Art von Fehlerprüfung brauche ich,... Ich muss wissen wenn das Verbinden nicht funktioniert hat.

Geschrieben

Ich scheibe immer ein Log File wenn etwas schief geht. Zum Schluss sende ich mir entweder das Logfile odr die Zusammenfassung von Robocopy Log per Mail zu. Das Ganze mache ich aber per VBScript.

Geschrieben

Moin,

 

vielleicht wäre es sinnvoll, wenn du mal deine genauen Anforderungen kundtust. Welches Ziel versuchst du mit deinem Batch zu erreichen? Bislang hast du nur "ich will aber" geäußert, aber so wird es schwierig, eine passende Lösung zu entwickeln.

 

Gruß, Nils

Geschrieben

Hmmm... ich hab Dein Script mal ausprobiert.

Bei mir tuts eigentlich das, was es soll...

 

Allerdings... Du fängst ja damit nur den Fehler ab, dass das Laufwerk nicht verbunden werden könnte... ob korrekt kopiert wurde, fängst Du ja da noch nicht ab, oder?

Geschrieben

@Cybquest

Danke für die Info...

 

Das es bei dir geht, hat mich jetzt Motiviert mich abermals damit zu spielen und jetzt weiß ich, dass diese Zeile dran Schuld ist:

echo msgbox "Fehler" ^& Chr(13) ^& "zweite Zeile" > in den autostart

Im "echten" Skript schaut die Zeile ein bisschen anders aus, aber was ich da machen möchte ist schnell beschrieben: Bei einem Fehler, möchte ich das ein .vbs Skript erstellt wird, welches einfach nur eine Messagebox enthalt die darauf hinweist, dass bei der Sicherung was schief gegangen ist. Der Code hierfür soll also einfach per 'echo' in ein File mit der Dateiendung .vbs geschrieben werden und die soll direkt in den Autostart Ordner eines bestimmten Userprofils landen.

Ich weiß, etwas seltsame Methode der Benachrichtigung, aber Mail senden etc. steht mir nicht zur verfügung.

 

<< 30min später >>

 

So hab's geschafft. Der Fehler war das: ^& Chr(13) ^&

Irgendwie hat er das nicht genommen, trotz escapen.

Geschrieben

Moin,

 

Meine Anforderung?

Ich brauche eine Lösung für das Problem, warum er in if not !RETURNCODE!==0 ( reinspringt und warum er dort nur den exit Befehl ausführt! ;)

 

das ist keine Anforderung. Auf der Basis reden wir nicht über eine Lösung für dein Problem (welches du ja nicht benennst), sondern über das Problem deiner Lösung.

 

Gruß, Nils

Geschrieben
...So hab's geschafft. Der Fehler war das: ^& Chr(13) ^&

Irgendwie hat er das nicht genommen, trotz escapen.

 

...die Zeile hab ich bei mir weg gelassen, das sie mir eh suspekt war ;)

 

Allerdings: Wirklich sehr seltsame Methode der Benachtrichtigung... wäre ein "net send" oder "msg" nicht möglich?

Geschrieben

@NilsK

Mein Problem ist nicht, das ich keine Lösung habe bzw. hatte. Ich bin/war nicht auf der Suche nach einer Lösung für mein Problem, sondern auf der Suche nach einer Fehlerbeseitigung für meine Lösung. Ich versteh nicht warum du mir eine andere Lösung für mein Problem aufdrängen willst. Nicht das ich undankbar erscheinen will, aber das bringt doch nix...

 

@Cybquest

Net Send oder msg würde theoretisch auch gehen, aber das ist auch eher unzuverlässig. Bei einem fehlgeschlagenen Verbindungsversuch mit dem Netzlaufwerk aufgrund eines Netzwerkproblems, wäre Net Send oder msg nicht so eine gute Wahl.

Ich denke das ich hier die beste Methode gewählt habe,... so wird halt der User der diesen PC benutzt darauf aufmerksam gemacht das etwas schief gegangen ist. Ich muss mich nur noch darauf verlassen, dass er mich dann auch anruft. ^^

 

Danke für die Hilfe! :)

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...