Chronologische Stapelverarbeitung in DOS

Von: , Frage gestellt am Mi, 24. Nov 2004

Hallo,

ich habe schon öfter folgendes Problem gehabt: Ein Batch-File -- unter Windows 98 gestartet -- soll gemischt Windows-Programme und dann wieder DOS-Programme erledigen. Ein vereinfachtes Beispiel.bat:

test.exe

copy C:\1\xyz C:\2\xyz

Das test.exe sei ein Windows-Programm, welches das File xyz im Verzeichnis C:\1 erzeugt. In der nächsten Zeile des Batch-Files soll dieses xyz noch in ein weiteres Verzeichnis kopiert werden. Dummerweise wartet Windows anscheinend nicht strikt ab, bis das Windowsprogramm fertig ist, sondern macht den zweiten Schritt vor dem ersten, so dass i. a. ein älteres File xyz kopiert wird.

Im Moment kann ich das lediglich dadurch vermeiden, indem ich zwischen beide Zeilen ein PAUSE einfüge, dann muss das System auf den Tastendruck warten, bevor dier Kopiervorgang gestartet wird. Doch etwas Automatisches gibt es nicht?

Gruß

Dieter

13 Antworten zu dieser Frage

  1. Antwort von nach 15 Minuten 1 hilfreich
    Re: Chronologische Stapelverarbeitung in DOS

    Hallo Dieter,
    ich habe gerade mal 'help' getippt und 'Start' gefunden. ;-)
    Zum Abtippen ein wenig zu viel Text, aber das steht u.a. '/wait - wartet bis das Programm ausgeführt ist' ...
    Gruß, Rainer

    • Antwort von nach einer Stunde 0 hilfreich
      Re^2: Chronologische Stapelverarbeitung in DOS

      Hallo Rainer,

      danke, aber ich finde im Internet weder Start noch Wait als Befehl. Wenn ich bei mir in der DOS-Box help tippe, kommt auch nur die Meldung, dass der Befehl nicht gefunden wurde. Bei mir wird halt nur das Windows-übliche DOS installiert sein, aber kein Explizites.

      Gruß

      Dieter

      • Antwort von nach einer Stunde 0 hilfreich
        Re^3: Chronologische Stapelverarbeitung in DOS

        Hallo Dieter, danke, aber ich finde im Internet weder Start noch Wait als
        Befehl. Wenn ich bei mir in der DOS-Box help tippe, kommt auch
        nur die Meldung, dass der Befehl nicht gefunden wurde. Bei mir
        wird halt nur das Windows-übliche DOS installiert sein, aber
        kein Explizites.
        Dann verrate doch mal Dein BS. ;-)

        Gruß, Rainer

        • Antwort von nach einer Stunde 0 hilfreich
          Re^4: Chronologische Stapelverarbeitung in DOS

          Hallo Rainer,
          Dann verrate doch mal Dein BS. ;-)

          siehe ganz oben: Windows 98.

          Gruß

          Dieter

          • Antwort von nach einer Stunde 0 hilfreich
            Re^5: Chronologische Stapelverarbeitung in DOS

            Hi Dieter, siehe ganz oben: Windows 98.
            sorry, da hab' ich nicht aufgepasst. ;-)
            Für W2k oder XP hätte ich Dir nämlich einfach meine cmd.ece gemailt. (W2k-Server)

            Der Befehl Start scheint aber auch bei Dir verfügbar zu sein.
            Sieh mal hier ...
            http://www.dibaro-online.de/index.htm?dos.htm
            ... da sind auch die Parameter beschrieben.
            Versuch doch einfach mal ...

            Start "DeinProgramm.exe" /wait

            ... schlimmstenfalls bekommst du eine Fehlermeldung und es passiert nichts.

            Gruß, Rainer

            • Antwort von nach 2 Stunden 0 hilfreich
              Re^6: Chronologische Stapelverarbeitung in DOS

              Hallo Rainer,

              danke, es geht schon was mit Deinem Tipp. Allerdings meldet mir die Windows-Applikation (ist ein C-Compiler): 'Duplicate filename on command line'. Er interpretiert anscheinend das /wait als Attribut bzw. als zu compilierendes File.

              Gruß

              Dieter

            • Antwort von nach 2 Stunden 0 hilfreich
              Re^7: Chronologische Stapelverarbeitung in DOS

              Hallo Dieter, danke, es geht schon was mit Deinem Tipp. Allerdings meldet
              mir die Windows-Applikation (ist ein C-Compiler): 'Duplicate
              filename on command line'. Er interpretiert anscheinend das
              /wait als Attribut bzw. als zu compilierendes File.
              äähhhmmmmm, C-Compiler ?!? Ging's nicht um ein Batchfile?
              C/C++ kann ich leider gar nicht. ;-( Ich bin bei VB6 stecken geblieben. Da würde ich das Problem allerdings gaaaanz anders lösen.
              Da kann man ja auch eine andere Anwendung starten. (Shell ...) ... Leider auch asynchron. Um da dann zu prüfen, ob die Anwendung noch läuft, verwendet man die Windows-API. ... Zu dem Thema steht im Brett VB gerade noch ein aktueller Beitrag mir genauer Erklärung. ...

              Gruß, Rainer

            • Antwort von nach 3 Stunden 0 hilfreich
              Re^8: Chronologische Stapelverarbeitung in DOS

              Hallo Rainer, äähhhmmmmm, C-Compiler ?!? Ging's nicht um ein Batchfile?
              Doch, es geht um ein DOS-Batchfile, aber die Windows-Applikation (wie in meinem allerersten Posting mit test.exe bezeichnet) ist eben dieser C-Compiler. Und dieser soll über das Batchfile aufgerufen werden, damit er ein HEX-File generiert, welches dann im nächsten Batch-Befehl nochmals irgendwohin kopiert wird.

              Ich vermute auch, dass es mit DOS-Tricks nicht zu lösen ist, außer eben dadurch, dass ich zwischen beide Batch-Zeilen ein PAUSE einfüge, damit wird das System gezwungen zu warten.

              Gruß

              Dieter

            • Antwort von nach 5 Stunden 0 hilfreich
              Re^9: Chronologische Stapelverarbeitung in DOS

              Hallo Dieter, Doch, es geht um ein DOS-Batchfile, aber die
              Windows-Applikation (wie in meinem allerersten Posting mit
              test.exe bezeichnet) ist eben dieser C-Compiler. Und dieser
              soll über das Batchfile aufgerufen werden, damit er ein
              HEX-File generiert, welches dann im nächsten Batch-Befehl
              nochmals irgendwohin kopiert wird.
              Ja, jetzt versteh ich's. ;-) Das wait wird als Parameter an das Programm übergeben und das hängt sich daran auf. ... Ich probier nachher noch ein wenig. Ich vermute auch, dass es mit DOS-Tricks nicht zu lösen ist,
              außer eben dadurch, dass ich zwischen beide Batch-Zeilen ein
              PAUSE einfüge, damit wird das System gezwungen zu warten.
              Das würde mir auch nicht gefallen. Entweder bremst das zu lange oder der Rechner ist zu schnell und es funktioniert nicht ...

              Wie wär's mit nem VB- oder C-Programm statt DOS?

              Gruß, Rainer



Keine passende Antwort gefunden? Jetzt eigene Frage stellen!