Robocopy in Batch-Datei

07/06/2011 - 12:43 von Anselm Rapp | Report spam
Hallo,

"Hier werden Sie geholfen" ist gefàhrlich - für die Helfer. Ich habe ein
neues Problem.

Im Vorfeld meines immer wieder hinausgeschobenen Umstiegs auf Windows 7
habe ich beschlossen, die Verzeichnisse in meinen etlichen Batch-Dateien
und Office-Makros durch Variable zu ersetzen, damit ich nach dem Umzug
nur einmal pro Verzeichnis die Variable und nicht mehrmals die
Verzeichnisse àndern muss. Dabei tut sich folgendes Problem in
Zusammenhang mit Robocopy auf:

Das

robocopy R:\psrbackups\ L:\Backup\ intern*.psx /MAXAGE:7

funktioniert.

Das

set PSaRPVz="R:\psrbackups\"
set BackupVz="L:\Backup\"
robocopy %PSaRPVz% %BackupVz% intern*.psx /MAXAGE:7

bewirkt die Meldung

ERROR : No Destination Directory Specified.

ECHO gibt aus

robocopy "R:\psrbackups\" "L:\Backup\" intern*.psx /MAXAGE:7

also Anführungszeichen um die Verzeichnisnamen, aber wenn ich den Befehl
so direkt starte, funktioniert es auch.

Mit anderen Variablennamen, Verzeichnissen und Dateispezifikation

set Vz1="C:\temp"
set VZ2="C:\WINDOWS\Temp"
robocopy %Vz1% %Vz2% *.txt /MAXAGE:7

funktioniert es.

Jetzt fàllt mir nur noch ein: R: ist mein zweites internes Laufwerk, L:
ist ein USB-Stick. Ob das mit letzterem zusammenhàngen kann?

Wieder mal danke im Voraus,

Anselm

Bitte in der Newsgroup antworten.
 

Lesen sie die antworten

#1 Uwe Sieber
07/06/2011 - 12:55 | Warnen spam
Anselm Rapp wrote:

robocopy R:\psrbackups\ L:\Backup\ intern*.psx /MAXAGE:7

funktioniert.

set PSaRPVz="R:\psrbackups\"
set BackupVz="L:\Backup\"
robocopy %PSaRPVz% %BackupVz% intern*.psx /MAXAGE:7

bewirkt die Meldung

ERROR : No Destination Directory Specified.



Das dürfte an der eigenwilligen Interpretation der
Kommandozeile liegen, die Microsofts C-Lib betreibt:
http://msdn.microsoft.com/en-us/lib...7w461.aspx

'A double quotation mark preceded by a backslash, \", is
interpreted as a literal double quotation mark (").

Das Problem ist also der Backslash vor dem Anführungszeichen.

Bei Pfaden in Umgebungsvariable macht man auch generell
keine Anführungszeichen - die werden schließlich oft als
Teilpfade benutzt, da sind die nur im Wege.

set XXX=C:\Program Files
funktioniert z.B. korrekt - trotz Leerzeichens sind keine
Aunführungszeichen nötig.


ECHO gibt aus

robocopy "R:\psrbackups\" "L:\Backup\" intern*.psx /MAXAGE:7

also Anführungszeichen um die Verzeichnisnamen, aber wenn ich den Befehl
so direkt starte, funktioniert es auch.



Sicher? Glaube ich nicht.

Mit anderen Variablennamen, Verzeichnissen und Dateispezifikation

set Vz1="C:\temp"
set VZ2="C:\WINDOWS\Temp"
robocopy %Vz1% %Vz2% *.txt /MAXAGE:7

funktioniert es.



Ja, kein Backslash am Ende der Pfade, schon gehts.


Gruß Uwe

Ähnliche fragen