Problem bei Batchprogramm

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

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 … :wink:

MfG
Roland

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 … :wink:

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

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 :smile:

Gruß

J.

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 :smile:

Super VIELEN DANK !!!

Gruß

J.

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

warum so umständlich.

siehe meinen Eintrag vor kurzem bei www.wer-weiss-was.de

http://www.wer-weiss-was.de/cgi-bin/www/service.fpl?..

Gruß
Matthias

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

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.