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!

Recommended Posts

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:

Link to post

Moin,

 

ich verstehe das Ganze zwar nicht vollständig, aber wenn die Variablen in deiner echten Datei auch mit ! statt mit % eingefasst sind, kann es nicht gehen ... oder überseh ich da was?

 

Gruß, Nils

Link to post

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.

Link to post

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

Link to post

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?

Link to post

@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.

Link to post

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

Link to post
...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?

Link to post

@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! :)

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...