Wie schreibe ich mit batch in eine andere Batch datei? - SciFi-Forum

Ankündigung

Einklappen
Keine Ankündigung bisher.

Wie schreibe ich mit batch in eine andere Batch datei?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Wie schreibe ich mit batch in eine andere Batch datei?

    Der Titel sagt eigentlich fast schon alles. Ich habe das Problem, das ich mit einer Batch Datei eine 2. Batch erstellen will, wo dann ein xcopy befehl drinsteht, der aber nur ausgeführt wird, falls die Datei nicht schon existiert.
    Dummerweise führt batch den xcopy befehl aber immer aus, statt ihn in die andere Datei zu schreiben.

    Bis jetzt hatte ich es immer in der Form:
    Code:
    echo If not exist "C:\...\3.bat" (echo D | xcopy "C:\...\2.bat" "C:\...\3.bat" > NUL) > 2.bat
    Ich hab überhaupt keine Ahnung wie ich es sonst machen soll und langsam krieg ich echt ne Kriese.

    Hoffe ihr könnt mir helfen.

    #2
    Ganz einfach: Mit Echo geht das gar nicht.

    Das '>' ist genauso wie das '|' ein Spezialzeichen unter DOS (und auch allen Interpretern die so tun als wären sie ein Dosprompt) und kann nicht geechot werden.
    Textemitter, powered by C8H10N4O2

    It takes the Power of a Pentium to run Windows, but it took the Power of 3 C-64 to fly to the Moon!

    Kommentar


      #3
      Und man kann das nicht escapen? Wer denkt sich denn so einen Sch**ss aus?
      können wir nicht?

      macht nix! wir tun einfach so als ob!

      Kommentar


        #4
        Dafür gibts ja nun die Powershell, mit der solche Probleme gelöst werden.
        Leider ist das mit Batch halt sehr alt, und damals wurde es nicht gebraucht.

        EDIT:
        So jetzt habe ich mir deinen text nochmal angeschaut.
        Ich analysiere mal, um draufzukommen was du eigentlich willst

        Code:
        echo If not exist "C:\...\3.bat"
        Also du fragst ab ob es schon eine Datei namens 3.bat gibt
        Code:
        (echo D | xcopy "C:\...\2.bat" "C:\...\3.bat" > NUL) > 2.bat
        Wenn es die Datei nicht gibt, dann kopiere die Datei 2.bat nach 3.bat und schreibe das ganze in die Datei 2.bat?

        Aber deinen Angaben zufolge sollt der Befehl nur in eine Datei geschrieben werden aber nicht ausgefürt? Was willst du eigentlich erreicht? Eventuell lässt sichd ein Problem einfacher lösen.
        Zuletzt geändert von ayin; 30.08.2009, 08:36.
        Textemitter, powered by C8H10N4O2

        It takes the Power of a Pentium to run Windows, but it took the Power of 3 C-64 to fly to the Moon!

        Kommentar


          #5
          Danke erstmal für die schnellen Antworten.

          Also nochmal zusammengefasst:

          Die 1.Bat schreibt einen Befehl in die 2.Bat

          Dieser Befehl soll folgendes können:
          1. Prüfe ob 3.bat existiert (auf C: )
          2. Wenn nicht kopiere 3.bat (liegt auf D: ) in den Ordner auf C: (wo sie ja fehlt)
          3. Das ganze ohne Rückfragen für den Benutzer

          Hoffe das ganze ist nicht zu Verworren.

          Kommentar


            #6
            Hm, also wieso brauchst du dafür drei Dateien? Du kannst ja in der ersten Datei auch überprüfen ob 3.bat existiert und notfalls anlegen.
            Wichtig ist halt, dass du aufpasst, dass du jedesmal schaust, dass sich die Datei nicht inhaltlich aufbläht.
            Textemitter, powered by C8H10N4O2

            It takes the Power of a Pentium to run Windows, but it took the Power of 3 C-64 to fly to the Moon!

            Kommentar


              #7
              Nee, ich kann das ganze nicht gleich mit der ersten machen. Ich hatte nähmlich vor, sie als exe zu Kompillieren. Bei exen aber meckert jeder Virenscanner, deshalb sollte sie eine Temporäre bat erstellen, die fast jeder Virenscanner durchgehen lässt.

              Das ganze hat sich aber Erledigt. Ein Kumpel hat mir AutoIT empfohlen und es funktioniert hervorragend. Danke trotzdem für eure Bemühungen.

              Kommentar

              Lädt...
              X