mit einer Batch eine Batch erstellen, die wiederum

Von: , Frage gestellt am Mo, 7. Sep 2009

Hi,

ich möchte eine Batch erstellen, die als eine Art installer arbeitet.

hier mal ein kleiner auszug:
...
echo echo >sleep.vbs wscript.sleep 3600000 >>Datensicherung.bat
echo cscript sleep.vbs>nul>> Datensicherung.bat
echo del sleep.vbs>> Datensicherung.bat

echo Goto _los>> Datensicherung.bat
...

nun hab ich das Problem, das es mir oben bei: echo echo >sleep.vbs wscript.sleep 3600000 >>Datensicherung.bat die >sleep.vbs nicht mit übernimmt.

das soll heißen, in der Datensicherung.bat steht nur noch:

echo wscript.sleep 3600000
cscript sleep.vbs
del sleep.vbs
Goto _los

die erstellung der sleep.vbs fehlt mir

Mfg und Danke schonma für eure hilfe.

(Sorry wenn ich nen bisschen kompliziert geschrieben hab)

11 Antworten zu dieser Frage

  1. Antwort von nach 10 Stunden 0 hilfreich
    Re: mit einer Batch eine Batch erstellen, die wied

    hast du mal versucht, den Text, den du in die Datei schreiben willst, in Anführungszeichen "" zu setzen?

    • Antwort von nach 22 Stunden 0 hilfreich
      Re^2: mit einer Batch eine Batch erstellen, die wi

      jup, dann stehts in der 2. Batch in anführungszeichen und kann somit nicht ausgeführt werden.

      leider :(

      danke trotzdem

      • Antwort von nach einem Tag 0 hilfreich
        Re^3: mit einer Batch eine Batch erstellen, die wi

        ansonsten hast du noch die Möglichkeit die Sachen einzeln reinzuschreiben mit 'echo.' (damit kein Zeilenvorschub eingefügt wird)
        das > musst du dann wahrscheinlich irgendwie kodieren

  2. Antwort von nach einem Tag 2 hilfreich
    Re: mit einer Batch eine Batch erstellen, die wied

    Hallo. nun hab ich das Problem, das es mir oben bei: echo echo
    >sleep.vbs wscript.sleep 3600000 >>Datensicherung.bat die
    >sleep.vbs nicht mit übernimmt.
    Du musst vermutlich das >-Zeichen escapen. Normalerweise müsste das mit ^ gehen, also sollte die Zeile dann so aussehen:

    echo echo ^>sleep.vbs wscript.sleep 3600000 >>Datensicherung.bat
    


    Sebastian.

    • Antwort von nach 13 Tagen 0 hilfreich
      Re^2: mit einer Batch eine Batch erstellen, die wi

      sorry das ich mich so lange nicht gemeldet hab, leider war ich beruflich außer haus.

      das mit dem escapen per ^ funktioniert super, nur hab ich jetzt das problem, das ich mit der erstelten batch ne neue batch erstellen will (in dieser sollen variable werte sein %bla%)

      so isses in der 1. batch:

      echo echo ^>Countdown.bat @echo off >>Datensicherung.bat
      echo echo cls ^>^>^Countdown.bat >>Datensicherung.bat
      echo echo mode con: ^ ^Lines=3^>^>^Countdown.bat >>Datensicherung.bat
      echo echo Color 9f ^>^>^Countdown.bat >>Datensicherung.bat
      echo echo TITLE COUNTDOWN ^>^>^Countdown.bat >>Datensicherung.bat
      echo echo COLOR 1E ^>^>^Countdown.bat >>Datensicherung.bat
      echo echo set /a cwn= 10 ^>^>^Countdown.bat >>Datensicherung.bat
      echo echo :99 ^>^>^Countdown.bat >>Datensicherung.bat
      echo echo set /a cwn= %%%cwn%%% -1 ^>^>^Countdown.bat >>Datensicherung.bat
      echo echo if "%%%cwn%%%"=="-1" goto _start ^>^>^Countdown.bat >>Datensicherung.bat

      echo echo ping ^-n ^2 ^127^.^0^.^0^.^1^>nul^>^>^Countdown.bat >>Datensicherung.bat

      echo echo cls ^>^>^Countdown.bat >>Datensicherung.bat
      echo echo echo. ^>^>^Countdown.bat >>Datensicherung.bat
      echo echo echo erneute Sicherung in %%%cwn%%%% sek ^>^>^Countdown.bat >>Datensicherung.bat
      echo echo ECHO. ^>^>^Countdown.bat >>Datensicherung.bat
      echo echo goto 99 ^>^>^Countdown.bat >>Datensicherung.bat
      echo echo _start ^>^>^Countdown.bat >>Datensicherung.bat
      echo echo exit ^>^>^Countdown.bat >>Datensicherung.bat
      echo start Countdown.bat >>Datensicherung.bat

      raus kommt in der 2. batch:

      echo >Countdown.bat @echo off
      echo cls >>Countdown.bat
      echo mode con: Lines=3>>Countdown.bat
      echo Color 9f >>Countdown.bat
      echo TITLE COUNTDOWN >>Countdown.bat
      echo COLOR 1E >>Countdown.bat
      echo set /a cwn= 10 >>Countdown.bat
      echo :99 >>Countdown.bat
      echo set /a cwn= %% -1 >>Countdown.bat
      echo if "%%"=="-1" goto _start >>Countdown.bat
      echo ping -n 2 127.0.0.1>nul>>Countdown.bat
      echo cls >>Countdown.bat
      echo echo. >>Countdown.bat
      echo echo erneute Sicherung in %% sek >>Countdown.bat
      echo ECHO. >>Countdown.bat
      echo goto 99 >>Countdown.bat
      echo _start >>Countdown.bat
      echo exit >>Countdown.bat
      start Countdown.bat

      und das ist dann in der 3. batch übrig:

      @echo off
      cls
      Color 9f
      TITLE COUNTDOWN
      COLOR 1E
      set /a cwn= 10 99
      set /a cwn= % -1
      if "%"=="-1" goto _start
      ping -n 2 127.0.0.1
      cls
      echo.
      echo erneute Sicherung in % sek
      ECHO.
      goto 99
      _start
      exit


      da hörts dann glaube auf mit dem escapen, zumindest habe ich es schon probiert.

      Danke schonmals und ich hoffe es ist ein wenig zu verstehen was ich machen möchte.

      • Antwort von nach 14 Tagen 0 hilfreich
        Re^3: mit einer Batch eine Batch erstellen, die wi

        Hallo. das mit dem escapen per ^ funktioniert super,
        Sehr schön. nur hab ich
        jetzt das problem, das ich mit der erstelten batch ne neue
        batch erstellen will (in dieser sollen variable werte sein
        %bla%)
        [...] da hörts dann glaube auf mit dem escapen, zumindest habe ich
        es schon probiert.
        Ehrlich gesagt blicke ich durch deinen Code nicht ganz durch. Habe aber auch nur einen kurzen Blick drauf geworfen.
        Aber vielleicht gibt es einen anderen Weg zum Ziel. Wofür willst du denn eine Batch schreiben, die eine Batch erstellt, die eine andere Batch erstellt. Also was ist das eigentliche Ziel? Eventuell kommt man ja mit einer oder 2 Batch-Files schon aus.

        Sebastian.

        • Antwort von nach 14 Tagen 0 hilfreich
          Re^4: mit einer Batch eine Batch erstellen, die wi

          Hi,

          der Grundgedanke ist ein tool für ne Datenbanksicherung zu schreiben.

          erste batch ist quasi die Installationsdatei (da es bei uns Leute gibt die keine Ahnung von rechnern haben.

          zweite batch ist dann die Datenbanksicherung an sich

          3 batch ist nicht zwingend notwendig, aber im hintergrund soll die Sicherung weiter laufen und per Countdown die übrige Zeit bis zur nächsten Sicherung anzeigen.

          leider kann ich keinerlei tool installieren nur batch starten funktioniert.

          danke ;)

          • Antwort von nach 14 Tagen 0 hilfreich
            Re^5: mit einer Batch eine Batch erstellen, die wi

            Hi. der Grundgedanke ist ein tool für ne Datenbanksicherung zu
            schreiben.

            erste batch ist quasi die Installationsdatei (da es bei uns
            Leute gibt die keine Ahnung von rechnern haben.

            zweite batch ist dann die Datenbanksicherung an sich

            3 batch ist nicht zwingend notwendig, aber im hintergrund soll
            die Sicherung weiter laufen und per Countdown die übrige Zeit
            bis zur nächsten Sicherung anzeigen.
            Wie wäre es, den Countdown mit in die 2. Batch aufzunehmen.
            Sobald die eigentliche Sicherung abgearbeitet ist, startet der Countdown und anschließend springst du per goto wieder an den Anfang. Oder du lässt die 1. Batch nicht die beiden anderen erzeugen, sondern die liegen der Installations-Batch als Datei bei (am besten nicht als irgendwas.bat, sonst klickt da noch jemand drauf) und du kopierst die dann ans Ziel.
            Das wären so 2 alternative Möglichkeiten, die mir einfallen. Vielleicht geht es so ja besser dann.

            Sebastian.

            • Antwort von nach 14 Tagen 0 hilfreich
              Re^6: mit einer Batch eine Batch erstellen, die wi

              Danke, manchmal ist es so mit den Bäumen im Wald, ich hab jetzt den Countdown in die 2. batch eingebaut, damit funzt es Super, DANKE nochmals für den geilen tip mit dem escapen^ damit war mich schon unheimlich geholfen.



Keine passende Antwort gefunden? Jetzt eigene Frage stellen!