Problem bei Batchprogramm

Von: , Frage gestellt am Mi, 6. Nov 2002

Hallo Volks,

wer kann mir sagen was ich hier falsch mache und wo ich im Internet gute Seiten zu Batchprogrammierung finde.


@echo On

for /F "tokens=2 delims=. " %%i in ("%date%") do set Tag=%%i
for /F "tokens=3 delims=. " %%j in ("%date%") do set Monat=%%j
for /F "tokens=4 delims=. " %%k in ("%date%") do set Jahr=%%k

set front = c:\Sicherung
set backupdir = z:\%Jahr%%Monat%%Tag%

xcopy %front %backupdir /c /f /i /s /e /h /y


Fehlermeldung:
Datei Sicherungbackupdir nich gefunden.
0 Dateien kopiert.

Vielen Dank im Voraus

Gruss Hein

7 Antworten zu dieser Frage

  1. Antwort von nach 17 Minuten 0 hilfreich
    Re: Problem bei Batchprogramm

    wer kann mir sagen was ich hier falsch mache und wo ich im
    Internet gute Seiten zu Batchprogrammierung finde.

    @echo On

    for /F "tokens=2 delims=. " %%i in ("%date%") do set Tag=%%i
    for /F "tokens=3 delims=. " %%j in ("%date%") do set Monat=%%j
    for /F "tokens=4 delims=. " %%k in ("%date%") do set Jahr=%%k

    set front = c:\Sicherung
    set backupdir = z:\%Jahr%%Monat%%Tag%

    xcopy %front %backupdir /c /f /i /s /e /h /y

    Fehlermeldung:
    Datei Sicherungbackupdir nich gefunden.
    0 Dateien kopiert.
    Servus Hein

    Die letzte Zeile muss so lauten:
    xcopy %front% %backupdir% /c /f /i /s /e /h /y

    Die mit dem Set-Befehl gesetzten Variablen müssen immer mit einem %-Zeichen vorne UND hinten angesprochen werden - wie du es ja mit Jahr, Monat und Tag richtig gemacht hast ... ;-)

    MfG
    Roland

    • Antwort von nach 27 Minuten 0 hilfreich
      Re^2: Problem bei Batchprogramm

      wer kann mir sagen was ich hier falsch mache und wo ich im
      Internet gute Seiten zu Batchprogrammierung finde.

      @echo On

      for /F "tokens=2 delims=. " %%i in ("%date%") do set Tag=%%i
      for /F "tokens=3 delims=. " %%j in ("%date%") do set Monat=%%j
      for /F "tokens=4 delims=. " %%k in ("%date%") do set Jahr=%%k

      set front = c:\Sicherung
      set backupdir = z:\%Jahr%%Monat%%Tag%

      xcopy %front %backupdir /c /f /i /s /e /h /y

      Fehlermeldung:
      Datei Sicherungbackupdir nich gefunden.
      0 Dateien kopiert.
      Servus Hein

      Die letzte Zeile muss so lauten:
      xcopy %front% %backupdir% /c /f /i /s /e /h /y

      Die mit dem Set-Befehl gesetzten Variablen müssen immer mit
      einem %-Zeichen vorne UND hinten angesprochen werden - wie du
      es ja mit Jahr, Monat und Tag richtig gemacht hast ... ;-)
      ja schon - das hab ich ja auch probiert dann bekomm ich folgende Fehlermeldung :
      Unzulässige Parameteranzahl
      0 Dateien kopiert.

      Probier das Programm bei dir mal aus - liegts vielleicht an meinem Rechner ???

      Gruss Hein

  2. Antwort von nach 34 Minuten 0 hilfreich
    Re: Roland hat Recht...

    Hi,
    Ein zusätzliches Problem hast Du hier:

    :set front = c:\Sicherung
    :set backupdir = z:\%Jahr%%Monat%%Tag%
    

    Set-Befehle bitte ohne Leerzeichen:
    :set front=c:\Sicherung
    :set backupdir=z:\%Jahr%%Monat%%Tag%
    


    Dann klappt das mit dem Nachbarn :)

    Gruß

    J.

    • Antwort von nach 46 Minuten 0 hilfreich
      Re^2: Roland hat Recht...

      Hi,
      Ein zusätzliches Problem hast Du hier:

      :set front = c:\Sicherung
      :set backupdir = z:\%Jahr%%Monat%%Tag%
      

      Set-Befehle bitte ohne Leerzeichen:
      :set front=c:\Sicherung
      :set backupdir=z:\%Jahr%%Monat%%Tag%
      


      Dann klappt das mit dem Nachbarn :)
      Super VIELEN DANK !!!!



      Gruß

      J.

    • Antwort von nach 57 Minuten 0 hilfreich
      Re^2: Roland hat Recht...

      Ein zusätzliches Problem hast Du hier:

      :set front = c:\Sicherung
      :set backupdir = z:\%Jahr%%Monat%%Tag%
      

      Set-Befehle bitte ohne Leerzeichen:
      :set front=c:\Sicherung
      :set backupdir=z:\%Jahr%%Monat%%Tag%
      


      Guten Tag

      Anscheinend hängt das vom Betriebssystem ab.
      Bei mir unter Windows 2000 hat es jedenfalls mit den Leerzeichen genauso funktioniert wie ohne.
      Aber jetzt, wo du es erwähnt hast, kann ich mich erinnern, dass ich vor vielen Jahren unter reinem MS-DOS (also ohne Windows) die Set-Befehle immer ohne Leerzeichen vor und nach dem Gleichheitszeichen geschrieben habe.

      MfG
      Roland

      • Antwort von nach 4 Stunden 0 hilfreich
        Re^3: Seltsam...

        Ein zusätzliches Problem hast Du hier:

        :set front = c:\Sicherung
        :set backupdir = z:\%Jahr%%Monat%%Tag%
        

        Set-Befehle bitte ohne Leerzeichen:
        :set front=c:\Sicherung
        :set backupdir=z:\%Jahr%%Monat%%Tag%
        

        Hi, Anscheinend hängt das vom Betriebssystem ab.
        Bei mir unter Windows 2000 hat es jedenfalls mit den
        Leerzeichen genauso funktioniert wie ohne.
        Hast Du die auch so eingegeben wie oben, d.h. rechts und links vom Gleichheitszeichen ein Leerzeichen?

        Ich hab nämlich auch Win2000, Build 2195 oder so. Wenn Du ein bißchen mit den Leerzeichen spielst, kommst Du schnell darauf, welche Kombinationen wirken.

        Und denk daran: eine nicht laufende Kombination, ausgeführt nach einer richtig laufenden, bewirkt nicht unbedinkt eine Fehlermeldung, da die Variable noch vom vorherigen Versuch mit dem richtigen Wert belegt ist. Will man das ausschalten, muß man in die Batchdatei SETLOCAL ausführen.

        Es ist eigentlich traurig für einen Betriebssystemherstelelr, daß er sich von Whitespace derart irritieren läßt.

        Gruß

        J.

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!