Robin: Probleme mit xcopy in einer batch-datei

Hi,

ich kopiere in einer batch-datei mit
xcopy c:\000 d:\sicher /D /S /Y /I /H /E
ein Verzeichnis mit Unterverzeichnissen.

Das klappt eigentlich immer hervorragend, nur
bei einem Rechner (Win98SE) gibt es ein Unterverzeichnis "Daten", welches lediglich leer, also ohne die darin beinhalteten Dateien
kopiert werden.

Da ich vermutet hatte, daß es womöglich an den ersten beiden Dateien gelegen haben könnte, denen jeweis 2 Dollarzeichen vorstanden, habe ich diese beiden Dateien herausgenommen. Aber auch ohne diese beiden Dateien gings nicht.

Kann sich irgendwer vorstellen, woran das liegen könnte? Nur zur Info, genügend Speicherplatz auf dem Ziellaufwerk ist vorhanden.

Grüße, Robin

  1. Hallo Robin,

    ich kopiere in einer batch-datei mit
    xcopy c:\000 d:\sicher /D /S /Y /I /H /E

    xcopy /? auf dem Win98SE Rechner, und prüfe, ob die von dir angegebenen Optionen auch den gewünschten Effekt haben.
    Wenn ich das auf meinem XP mache komme ich auch ins grübeln ... warum hast du /S _und_ /E angegeben?

    Grüße,

    Jochen

    --
    Heute schon gescribbelt?
    Scribbleboard
    1. Hallo Robin,

      ich kopiere in einer batch-datei mit
      xcopy c:\000 d:\sicher /D /S /Y /I /H /E

      xcopy /? auf dem Win98SE Rechner, und prüfe, ob die von dir angegebenen Optionen auch den gewünschten Effekt haben.
      Wenn ich das auf meinem XP mache komme ich auch ins grübeln ... warum hast du /S _und_ /E angegeben?

      Grüße,

      Jochen

      Hi Jochen,

      danke, ist schonmal ein guter Ansatz. Und stimmt, /S und /E mach wenig Sinn.
      Ansonsten, gibts weitere Möglichkeiten für diesen Fehler?
      Grüße, Robin

      1. Hallo Robin,

        Ansonsten, gibts weitere Möglichkeiten für diesen Fehler?

        vielleicht dass auf die Dateien irgendwie zugegriffen wird, oder das betr. Verzeichnis
        kann nicht erstellt werden (ungültiger Name o.ä?).
        Sonst gibt es noch einen Schalter /C, Weiterkopieren nach Fehler.

        Grüsse

        Cyx23

        1. Hallo Robin,

          Ansonsten, gibts weitere Möglichkeiten für diesen Fehler?

          vielleicht dass auf die Dateien irgendwie zugegriffen wird, oder das betr. Verzeichnis
          kann nicht erstellt werden (ungültiger Name o.ä?).
          Sonst gibt es noch einen Schalter /C, Weiterkopieren nach Fehler.

          Grüsse

          Cyx23

          Hi Cyx23,
          erstmal danke für die Hilfe. Aber genutzt hats leider nicht.
          Parameter /C hat nichts gebrach und das Verzeichnis erstellt xcopy ja, aber die Daten überträgt xcopy nicht.
          Wenn ich versuche, die Daten nicht als Unterverzeichnis, sondern über den direkten Pfad zu kopieren, meckert xcopy, daß die Daten nicht gefunden wurden (obwohl der Pfad definitiv richtig ist).
          Wen ich den Ordner kopiere und nicht als Unterverzeichnis des Hauptverzeichnisses per xcopy kopiere, läuft alles glatt.

          ?????

          Grüße, Robin

          1. Hi Cyx23,
            erstmal danke für die Hilfe. Aber genutzt hats leider nicht.
            Parameter /C hat nichts gebrach und das Verzeichnis erstellt xcopy ja, aber die Daten überträgt xcopy nicht.

            Anscheinend bringt /C doch etwas, denn bei nochmaligem Versuch macht xcopy jetzt einiges anders und setzt mir ein paar Dateien als Fehler.* (jeweilige Endung) in eines der Verzeichnisse.

            Bleibt also nun, herauszufinden, warum die Daten fehlerhaft kopiert werden.

            Ganz schön doof, auf so eine Datensicherung kann ich doch nicht bauen, oder?

            Grüße, Robin

            Wenn ich versuche, die Daten nicht als Unterverzeichnis, sondern über den direkten Pfad zu kopieren, meckert xcopy, daß die Daten nicht gefunden wurden (obwohl der Pfad definitiv richtig ist).
            Wen ich den Ordner kopiere und nicht als Unterverzeichnis des Hauptverzeichnisses per xcopy kopiere, läuft alles glatt.

            ?????

            Grüße, Robin

            1. Hallo Robin,

              Anscheinend bringt /C doch etwas, denn bei nochmaligem Versuch macht xcopy jetzt einiges anders und setzt mir ein paar Dateien als Fehler.* (jeweilige Endung) in eines der Verzeichnisse.

              chkdsk könnte Dich möglicherweise weiterbringen bzw. unter Win 98 scandisk.

              Bleibt also nun, herauszufinden, warum die Daten fehlerhaft kopiert werden.

              Ganz schön doof, auf so eine Datensicherung kann ich doch nicht bauen, oder?

              Warum nutzt Du nicht die vorhandene Software zur Datensicherung?

              Freundliche Grüße

              Vinzenz

              1. Hi Vinzenz,

                Warum nutzt Du nicht die vorhandene Software zur Datensicherung?

                Freundliche Grüße

                Vinzenz

                jaja, hab ich mir auch gedacht. Nur, daß ich nun nicht die (nicht) vorhandene Sicherung benutze, sondern myEasySync. Funktioniert sehr gut.

                Bleibt trotzdem ein kleines Problem,w as ich noch habe, nämlich: Der Autor schreibt:

                Fehlercodes

                Wenn man myEasySync aus einer Batchdatei startet, kann es sinnvoll sein den Rückgabewert auszuwerten.

                Rückgabewert Beschreibung
                0 Keine Fehler.
                1 Einige Dateien wurden nicht gesichert oder wiederhergestellt.
                2 Abbruch durch Benutzer.
                3 Nicht genug Platz im Zielordner.

                Wie kann ich denn  in einer batch-Datei den Rückgabewert überhaupt abwarten und dann verwerten?

                Weißt Du das? Ich hab alle mir bekannten Quellen danach durchsucht, aber nichts hierzu gefunden.

                Grüße, Robin

                1. Hallo,

                  Wie kann ich denn  in einer batch-Datei den Rückgabewert überhaupt abwarten und dann verwerten?

                  Du kannst ihn (unmittelbar) nach der jeweiligen Aktion abfragen und dann etwas
                  tun, einfaches Beispiel:

                  dir c:
                  if errorlevel=0 echo x
                  if errorlevel=1 echo y

                  Grüsse

                  Cyx23

                  1. Hallo Cyx23,

                    if errorlevel=0 echo x
                    if errorlevel=1 echo y

                    du solltest dir bitte die Syntax der errorlevel-Direktive noch einmal ansehen, um dein Wissen aufzufrischen.  ;-)

                    Ciao,

                    Martin

                    1. Hallo Martin,

                      if errorlevel=0 echo x
                      if errorlevel=1 echo y

                      du solltest dir bitte die Syntax der errorlevel-Direktive noch einmal ansehen, um dein Wissen aufzufrischen.  ;-)

                      Ja wann war das noch als ich ein DOS-Menu geschrieben und Tastencodes o.ä. abgefragt hatte,
                      vielleicht 1988? Also richtig ists denn wohl so: if errorlevel 0 echo x

                      In welchem Karton die Syntax jetzt hier nach der letzten Ausmist-Aktion noch verfügbar sein mag...

                      Immerhin habe ich es, allerdings mit einer womöglich ganz pöse proprietär pfehlertoleranten
                      M$ Version, getestet, und damit funktioniert es auch wie gepostet:-)

                      Grüsse

                      Cyx23

                      1. Hi Martin und alle anderen,

                        habe nun folgenden Code:

                        ----schnipp

                        echo.|date>datum.bat
                        echo set DATUM=%%3>aktuelles.bat
                        call datum.bat
                        md c:\ordner\backups%DATUM%
                        set heute=%DATUM%
                        del datum.bat
                        del aktuelles.bat

                        Choice /c:jna   [J]a, [N]ein, [A]bbrechen: /T:J,30
                        If Errorlevel 3 goto Punktdrei
                        If Errorlevel 2 goto Punktzwei
                        If Errorlevel 1 goto Punkteins
                        :Punktdrei
                        goto ende
                        :Punktzwei
                        echo Dann eben nicht!
                        goto ende
                        :Punkteins

                        start /w C:\sync\EasySync.exe "C:\ordner" "d:\ordner" include="*.*" exclude="*.~*" nodel=on delempty=off auto=backup log="c:\ordner\backups%heute%\reservesicherung.txt"

                        if errorlevel 3 goto OutOfSpace1
                        if errorlevel 2 goto UserBreak1
                        if errorlevel 1 goto FilesSkipped1
                        echo Reservesicherung-fertig, keine Fehler.
                        goto weiter

                        :OutOfSpace1
                        echo Reservesicherung-Nicht genügend Speicherplatz.
                        goto EOF

                        :UserBreak1
                        echo Reservesicherung-Abbruch durch Benutzer.
                        goto EOF

                        :FilesSkipped1
                        echo Reservesicherung-Nicht alle Dateien kopiert.
                        goto EOF

                        :weiter
                        ...

                        -----schnapp

                        Läuft immer wieder mal astrein durch, aber auch immer wieder komme ich an einen Punkt, an dem ich folgende Rückmeldungen bekomme:

                        Reservesicherung-fertig, keine Fehler.
                        Reservesicherung-Nicht alle Dateien kopiert.

                        Wie kann das überhaupt??

                        Ist da ein Haken in meiner Batchdatei oder spinnt da das Backupprogramm Easysync??

                        Viele Grüße

                        Robin

                        1. Hi Martin und alle anderen,

                          habe nun folgenden Code:

                          ----schnipp

                          echo.|date>datum.bat
                          echo set DATUM=%%3>aktuelles.bat
                          call datum.bat
                          md c:\ordner\backups%DATUM%
                          set heute=%DATUM%
                          del datum.bat
                          del aktuelles.bat

                          Choice /c:jna   [J]a, [N]ein, [A]bbrechen: /T:J,30
                          If Errorlevel 3 goto Punktdrei
                          If Errorlevel 2 goto Punktzwei
                          If Errorlevel 1 goto Punkteins
                          :Punktdrei
                          goto ende
                          :Punktzwei
                          echo Dann eben nicht!
                          goto ende
                          :Punkteins

                          start /w C:\sync\EasySync.exe "C:\ordner" "d:\ordner" include="*.*" exclude="*.~*" nodel=on delempty=off auto=backup log="c:\ordner\backups%heute%\reservesicherung.txt"

                          if errorlevel 3 goto OutOfSpace1
                          if errorlevel 2 goto UserBreak1
                          if errorlevel 1 goto FilesSkipped1
                          echo Reservesicherung-fertig, keine Fehler.
                          goto weiter

                          :OutOfSpace1
                          echo Reservesicherung-Nicht genügend Speicherplatz.
                          goto EOF

                          :UserBreak1
                          echo Reservesicherung-Abbruch durch Benutzer.
                          goto EOF

                          :FilesSkipped1
                          echo Reservesicherung-Nicht alle Dateien kopiert.
                          goto EOF

                          :weiter
                          ...

                          -----schnapp

                          Läuft immer wieder mal astrein durch, aber auch immer wieder komme ich an einen Punkt, an dem ich folgende Rückmeldungen bekomme:

                          Reservesicherung-fertig, keine Fehler.
                          Reservesicherung-Nicht alle Dateien kopiert.

                          Wie kann das überhaupt??

                          Ist da ein Haken in meiner Batchdatei oder spinnt da das Backupprogramm Easysync??

                          Viele Grüße

                          Robin

                          Klar ist inzwischen, daß nach der Sprungmarke "weiter" der zweite folgende Kopiervorgang den Rückgabewert für das "Reservesicherung-Nicht alle Dateien kopiert." liefert.

                          Hab aber leider noch keine Ahnung, woran das liegt. Es ist im Grunde genau derselbe Kopiervorgang nochmal, nur anstelle auf Festplatte "d" nun auf den USB-Stick "g".

                          Was heißt denn eigentlich "Es wurden nciht alle Daten kopiert"? Wann kann sowas überhaupt vorkommen?

                          Grüße, Robin

                          1. Hallo Robin,

                            Klar ist inzwischen, daß nach der Sprungmarke "weiter" der zweite folgende Kopiervorgang den Rückgabewert für das "Reservesicherung-Nicht alle Dateien kopiert." liefert.

                            ach, da kommt noch mehr! Sag das doch gleich!
                            Das konnten wir natürlich nicht ahnen. Ich hab mir eben schon das Hirn weichgegrübelt, wie es zu dieser Folge der zwei Ausgabezeilen kommen könnte!

                            Was heißt denn eigentlich "Es wurden nciht alle Daten kopiert"? Wann kann sowas überhaupt vorkommen?

                            Das sollte dir die Beschreibung von eayssync sagen können. Da der Speichermangel auf dem Zielmedium separat gemeldet wird, kommt nicht mehr viel in Frage. Am wahrscheinlichsten erscheint mir, dass die eine oder andere Datei zeitweise von Windows oder einem anderen Programm geöffnet und deswegen für andere Zugriffe gesperrt ist. Schau dir doch mal die Protokolldatei an, die das Programm auswirft. Vielleicht steht da drin, *welche* Dateien nicht kopiert werden konnten, und dann könnte man die Erklärung möglicherweise erraten. Vielleicht steht aber auch dder Grund im Klartext mit in der Protokolldatei. Einen Blick wär's wert...

                            Schönen Abend noch,

                            Martin

                            1. Hallo Martin,

                              ach, da kommt noch mehr! Sag das doch gleich!

                              Hast ja Recht. Sorry. Ich wollte den Fehler eingrenzen, habs aber erst danach erkannt, daß das falsch war.

                              Das konnten wir natürlich nicht ahnen. Ich hab mir eben schon das Hirn weichgegrübelt, wie es zu dieser Folge der zwei Ausgabezeilen kommen könnte!

                              Oops. :-(

                              Was heißt denn eigentlich "Es wurden nciht alle Daten kopiert"? Wann kann sowas überhaupt vorkommen?

                              Das sollte dir die Beschreibung von eayssync sagen können. Da der Speichermangel auf dem Zielmedium separat gemeldet wird, kommt nicht mehr viel in Frage. Am wahrscheinlichsten erscheint mir, dass die eine oder andere Datei zeitweise von Windows oder einem anderen Programm geöffnet und deswegen für andere Zugriffe gesperrt ist. Schau dir doch mal die Protokolldatei an, die das Programm auswirft. Vielleicht steht da drin, *welche* Dateien nicht kopiert werden konnten, und dann könnte man die Erklärung möglicherweise erraten. Vielleicht steht aber auch dder Grund im Klartext mit in der Protokolldatei. Einen Blick wär's wert...

                              Naja, da hatte ich vorher schon reingesehen, aber keine aussagekräftige Hilfe bekommen.

                              Trotzdem habe ich möglicherweise die Lösung gefunden. "Es wurden nicht alle Daten kopiert", bzw. Rückgabecode 1 ist anscheinend ausschließlich dann zu reproduzieren, wenn man im Quellordner eine Datei löscht und anschließend im Kopiervorgang das Löschen der Datei im Zielordner mit "nodel=on" verbietet und/oder wenn man im Zielordner eine Datei abändert und zugleich die Option search=both hat.

                              Jedenfalls scheint Rückgabewert 1 in keinem Fall etwas zu sein, was auf einen ungewollten Vorgang hindeutet.

                              Kann das sein ????

                              Jedenfalls sämtliche Kontrollen, nachdem ich Rückgabewert 1 genauso behandel, wie Rückgabewert 0 verliefen ohne Programm- oder Kopierfehler, wenngleich ich trotzdem ein irgendwie ungutes Gefühl dabei habe...

                              Schönen Abend noch,

                              Danke und schöne Tag noch

                              Robin

                              Martin

                2. Hallo Robin,

                  Wenn man myEasySync aus einer Batchdatei startet, kann es sinnvoll sein den Rückgabewert auszuwerten.

                  Na das ist doch fein! Viele Programme sind heutzutage gar nicht mehr so freundlich, über Erfolg oder Misserfolg zu berichten.

                  Rückgabewert Beschreibung
                  0 Keine Fehler.
                  1 Einige Dateien wurden nicht gesichert oder wiederhergestellt.
                  2 Abbruch durch Benutzer.
                  3 Nicht genug Platz im Zielordner.

                  Wie kann ich denn  in einer batch-Datei den Rückgabewert überhaupt abwarten und dann verwerten?

                  Es zahlt sich ab und zu aus, wenn man auch "veraltete" Systeme wie DOS noch kennt.
                  Also das mit dem Abwarten ergibt sich von selbst, wenn dein Backup-Programm ein echtes DOS-Programm ist. Dann wird nämlich die Batchdatei solange nicht weiter bearbeitet, bis das aufgerufene Programm sich "fertig" meldet.
                  Wenn es sich um eine Windows-Applikation handelt, muss man nachhelfen. Dazu gibt es seit Windows 9x das "start"-Kommando speziell für Batchdateien. Mit dem Schalter /w kann man erzwingen, dass das Tool auf die Rückmeldung des aufgerufenen Programms wartet.
                  Für die Abfrage des Rückgabewerts vom aufgerufenen Programm kann man die errorlevel-Anweisung verwenden. Kombiniert könnte das in der Batchdatei also ungefähr so aussehen:

                  ---8<----------------
                    @echo off
                    start /w myeasysync.exe
                    if errorlevel 3 goto OutOfSpace
                    if errorlevel 2 goto UserBreak
                    if errorlevel 1 goto FilesSkipped
                    echo Fertig, keine Fehler.
                    goto EOF

                  :OutOfSpace
                    echo Nicht genügend Speicherplatz.
                    goto EOF

                  :UserBreak
                    echo Abbruch durch Benutzer.
                    goto EOF

                  :FilesSkipped
                    echo Nicht alle Dateien kopiert.
                    goto EOF

                  :EOF
                   ---8<----------------

                  Das Gefriemel mit den Labels und den vielen gotos ist leider nötig, weil Fallunterscheidungen nur auf Einzelanweisungen beschränkt sind und so etwas wie "else" nicht zur Verfügung steht.
                  Die Reihenfolge der errorlevel-Abfrage ist übrigens auch wichtig, weil die Abfrage nicht auf Rückgabewert==x prüft, sondern auf >=x. Deshalb würde errorlevel 2 auch zutreffen, wenn das Programm den Statuscode 3 abliefert.

                  So long,

                  Martin

                  1. »» Hallo Robin,
                    »»
                    »» »» Wenn man myEasySync aus einer Batchdatei startet, kann es sinnvoll sein den Rückgabewert auszuwerten.
                    »»
                    »» Na das ist doch fein! Viele Programme sind heutzutage gar nicht mehr so freundlich, über Erfolg oder Misserfolg zu berichten.
                    »»
                    »» »» Rückgabewert Beschreibung
                    »» »» 0 Keine Fehler.
                    »» »» 1 Einige Dateien wurden nicht gesichert oder wiederhergestellt.
                    »» »» 2 Abbruch durch Benutzer.
                    »» »» 3 Nicht genug Platz im Zielordner.
                    »» »»
                    »» »» Wie kann ich denn  in einer batch-Datei den Rückgabewert überhaupt abwarten und dann verwerten?
                    »»
                    »» Es zahlt sich ab und zu aus, wenn man auch "veraltete" Systeme wie DOS noch kennt.
                    »» Also das mit dem Abwarten ergibt sich von selbst, wenn dein Backup-Programm ein echtes DOS-Programm ist. Dann wird nämlich die Batchdatei solange nicht weiter bearbeitet, bis das aufgerufene Programm sich "fertig" meldet.
                    »» Wenn es sich um eine Windows-Applikation handelt, muss man nachhelfen. Dazu gibt es seit Windows 9x das "start"-Kommando speziell für Batchdateien. Mit dem Schalter /w kann man erzwingen, dass das Tool auf die Rückmeldung des aufgerufenen Programms wartet.
                    »» Für die Abfrage des Rückgabewerts vom aufgerufenen Programm kann man die errorlevel-Anweisung verwenden. Kombiniert könnte das in der Batchdatei also ungefähr so aussehen:
                    »»
                    »»  ---8<----------------
                    »»   @echo off
                    »»   start /w myeasysync.exe
                    »»   if errorlevel 3 goto OutOfSpace
                    »»   if errorlevel 2 goto UserBreak
                    »»   if errorlevel 1 goto FilesSkipped
                    »»   echo Fertig, keine Fehler.
                    »»   goto EOF
                    »»
                    »»   :OutOfSpace
                    »»   echo Nicht genügend Speicherplatz.
                    »»   goto EOF
                    »»
                    »»   :UserBreak
                    »»   echo Abbruch durch Benutzer.
                    »»   goto EOF
                    »»
                    »»   :FilesSkipped
                    »»   echo Nicht alle Dateien kopiert.
                    »»   goto EOF
                    »»
                    »»   :EOF
                    »»  ---8<----------------
                    »»
                    »» Das Gefriemel mit den Labels und den vielen gotos ist leider nötig, weil Fallunterscheidungen nur auf Einzelanweisungen beschränkt sind und so etwas wie "else" nicht zur Verfügung steht.
                    »» Die Reihenfolge der errorlevel-Abfrage ist übrigens auch wichtig, weil die Abfrage nicht auf Rückgabewert==x prüft, sondern auf >=x. Deshalb würde errorlevel 2 auch zutreffen, wenn das Programm den Statuscode 3 abliefert.
                    »»
                    »» So long,
                    »»
                    »»  Martin

                  2. »» Hallo Robin,
                    »»
                    »» »» Wenn man myEasySync aus einer Batchdatei startet, kann es sinnvoll sein den Rückgabewert auszuwerten.
                    »»
                    »» Na das ist doch fein! Viele Programme sind heutzutage gar nicht mehr so freundlich, über Erfolg oder Misserfolg zu berichten.

                    Hi Martin,

                    sehe ich ähnlich, das war auch einer der Gründe dafür, dieses Programm auszuwählen :-)

                    »»
                    »» »» Rückgabewert Beschreibung
                    »» »» 0 Keine Fehler.
                    »» »» 1 Einige Dateien wurden nicht gesichert oder wiederhergestellt.
                    »» »» 2 Abbruch durch Benutzer.
                    »» »» 3 Nicht genug Platz im Zielordner.
                    »» »»
                    »» »» Wie kann ich denn  in einer batch-Datei den Rückgabewert überhaupt abwarten und dann verwerten?
                    »»
                    »» Es zahlt sich ab und zu aus, wenn man auch "veraltete" Systeme wie DOS noch kennt.

                    So isses.

                    »» Also das mit dem Abwarten ergibt sich von selbst, wenn dein Backup-Programm ein echtes DOS-Programm ist. Dann wird nämlich die Batchdatei solange nicht weiter bearbeitet, bis das aufgerufene Programm sich "fertig" meldet.

                    "Mein" Programm ist kein DOS-Programm. Witzigerweise ist es aber unter win xp so, daß die Batch auf das Programmende wartet, unter Win 9.x aber nicht.

                    »» Wenn es sich um eine Windows-Applikation handelt, muss man nachhelfen. Dazu gibt es seit Windows 9x das "start"-Kommando speziell für Batchdateien. Mit dem Schalter /w kann man erzwingen, dass das Tool auf die Rückmeldung des aufgerufenen Programms wartet.

                    Genial, daß Du das weißt. Supi. Genau das fehlte mir.

                    »» Für die Abfrage des Rückgabewerts vom aufgerufenen Programm kann man die errorlevel-Anweisung verwenden. Kombiniert könnte das in der Batchdatei also ungefähr so aussehen:
                    »»
                    »»  ---8<----------------
                    »»   @echo off
                    »»   start /w myeasysync.exe
                    »»   if errorlevel 3 goto OutOfSpace
                    »»   if errorlevel 2 goto UserBreak
                    »»   if errorlevel 1 goto FilesSkipped
                    »»   echo Fertig, keine Fehler.
                    »»   goto EOF
                    »»
                    »»   :OutOfSpace
                    »»   echo Nicht genügend Speicherplatz.
                    »»   goto EOF
                    »»
                    »»   :UserBreak
                    »»   echo Abbruch durch Benutzer.
                    »»   goto EOF
                    »»
                    »»   :FilesSkipped
                    »»   echo Nicht alle Dateien kopiert.
                    »»   goto EOF
                    »»
                    »»   :EOF
                    »»  ---8<----------------
                    »»

                    Ok. Das hatte ich mir schon gedacht, daß das über die Errorlevel geht, also ähnlich wie meine Abfrage, ob der User Ja, Nein oder Abbrechen wählt, da habe ich das auch so gemacht.

                    »» Das Gefriemel mit den Labels und den vielen gotos ist leider nötig, weil Fallunterscheidungen nur auf Einzelanweisungen beschränkt sind und so etwas wie "else" nicht zur Verfügung steht.
                    »» Die Reihenfolge der errorlevel-Abfrage ist übrigens auch wichtig, weil die Abfrage nicht auf Rückgabewert==x prüft, sondern auf >=x. Deshalb würde errorlevel 2 auch zutreffen, wenn das Programm den Statuscode 3 abliefert.

                    Ok. Verstanden. Nein, der entscheidende Tip war das /w. Das werde ich gleich im Büro austesten.

                    Danke, natürlich auch an alle anderen Helfer.

                    Grüße, Robin

                    »»
                    »» So long,
                    »»
                    »»  Martin