FOR-IN \ ROBOCOPY Sysntaxfeineheit: Namen mit Leerzeichen

cumulonimbus8

Fleet Admiral
Registriert
Apr. 2012
Beiträge
19.040
Hallo!

Das Problem, dass FOR-IN bei einer Werteliste die nicht aus einer Datei kommt mit dem Trenner Leerzeichen Probleme hat kennt man:
FOR %%A IN (Windows Dokumente und Einstellungen Programme) DO…
liefert Windows • Dokumente • und • Einstellungen • Programme.
Ein Kapseln mit Anführungszeichen taugt aber auch nicht..:
FOR %%A IN ("Windows" "Dokumente und Einstellungen" "Programme") DO…
Denn mit "Windows" • "Dokumente und Einstellungen" • "Programme" kann eine Syntax nach dem Prinzip
ROBOCOPY K:%%A "Z:\Haus und Hof\%A" /MIR
nichts anfangen, denn ROBOCOPY K:\Programme "Z:\Haus und Hof\"Programme"" /MIR überschlägt sich wegen der ".

Irgendwo, und ich finde das nicht wieder, habe ich eine seltsame Verteilung von " in der Syntax erlebt die anscheinend doch funktioniert, aber ich erinnere mich nicht und ein paar Versuche waren erfolglos.
Wie bekommt man die fest codierten Pfandanteile mit " und die die aus FOR-IN kommenden verheiratet?

CN8
 
%%~A - entfernt alle umschließenden Anführungszeichen: FOR %%A IN (Windows "Dokumente und Einstellungen" Programme) DO echo %%~A
 
oder du verwendest DOS-Namen, zB. Dokume~1 statt "Dokumente und Einstellungen".
 
@simpsonsfan
Mussichmalprobieren :)

Aber irgendwie war da was ohne diese Funktion, es schien mir so als würden ›obskure‹ Konstruktionen wie C:\Progamme\"Gemeinsame Dateien" mit den " im Pfade verteilt trotzdem funktionieren.


@frogger9
DOS-Namen…
…sind gar keine so dumme Idee, aber «es geht doch irgendwie ohne» :freaky:
Ich quäle da nutzlos mein Gehirn weil ich sicher bin eine Lösung gesehen zu haben.

Außerdem hatte ich sie als Lösung wegen erhöhter Unübersichtlichkeit mal dringend weggelassen. Z.B. kann ein PROGRA~1 schief gehen wenn nach Zwischenfällen das Ding PROGRA~2 heißt. Oder ganze Pfadkonstruktionen wie
C:\DOKUME~1\ALLUSE~1\EIGENE~1\ONLINE~1 = C:\Dokumente und Einstellungen\All Users\Eigene Dateien\Online Bible {immer gut für Zitate!}
Ver(w)irrung stiften. Ich wollte mir einen handzahmen und übersichtlichen Zugriff anlegen den man auch später wieder lesen oder schnell anpassen kann :)

CN8
 
Also bei mir klappt das mit ~, setzt halt die Befehlserweiterung voraus.
Im Gegensatz zu delims, das irgendwie nur mit for /f zu gehen scheint.
 
Befehlserweiterung ist an. Und mit /F habe ich in der Tat nur Schi/F/Fbruch erlitten… :rolleyes:

Im Moment brennt die Hütte anderweitig, da muss ich diesen Fall mal 'n Moment ruhen lassen.

CN8
 
Zurück
Oben