Lange Pfadnamen in Batchdateien übergeben

Hallo,

bin gerade dabei eine Batchdatei zu schreiben die eigentlich nichts aufregendes machen soll, allerdings habe ich ein klitzekleines Problem mit den Pfadnamen, sobald Leerzeichen darin auftauchen.

Hier mal die Batchdatei im Rohzustand :smile:

dir „y:\dokumente“ /S /AD /B > c:\tester\verzeichnisse.txt

for /f %%a in (c:\tester\verzeichnisse.txt) do xcacls %%a >> c:\tester\vererbung.txt

Das Problem ist jetzt, die Datei verzeichnisse.txt wird ordentlich erstellt, so wie ich sie brauche, solange die Datei eingelesen wird und kein Leerzeichen in den Unterverzeichnissen vorkommt läuft alles bestens, sobald ein Leerzeichen zuschlägt, verschluckt er einfach den Rest und kann mir natürlich nicht mehr die Berechtigungen anzeigen.

Bei dem Versuch Anführungszeichen mit in die Klammer zu setzen passiert das selbe, alles nach Leerzeichen wird auch verschluckt, auch wenn ich hinter xcalcs das %%a in Anführungszeichen setze verschluckt er die Leerzeichen.

Wie bekomme ich trotzdem den kompletten Pfad in die Variable geschrieben? Es kann nur eine Kleinigkeit sein und der 8.3 Pfad bringt mir leider nichts weil ich das Endergebnis in der Textdatei weiterverarbeiten muss.

Danke für alle die sich Gedanken machen
Grüße Triefnase

Hallo.

bin gerade dabei eine Batchdatei zu schreiben die eigentlich
nichts aufregendes machen soll, allerdings habe ich ein
klitzekleines Problem mit den Pfadnamen, sobald Leerzeichen
darin auftauchen.

Hier mal die Batchdatei im Rohzustand :smile:

dir „y:\dokumente“ /S /AD /B > c:\tester\verzeichnisse.txt

for /f %%a in (c:\tester\verzeichnisse.txt) do xcacls %%a
>> c:\tester\vererbung.txt

Das Problem ist jetzt, die Datei verzeichnisse.txt wird
ordentlich erstellt, so wie ich sie brauche, solange die Datei
eingelesen wird und kein Leerzeichen in den
Unterverzeichnissen vorkommt läuft alles bestens, sobald ein
Leerzeichen zuschlägt, verschluckt er einfach den Rest und
kann mir natürlich nicht mehr die Berechtigungen anzeigen.

Bei dem Versuch Anführungszeichen mit in die Klammer zu setzen
passiert das selbe, alles nach Leerzeichen wird auch
verschluckt, auch wenn ich hinter xcalcs das %%a in
Anführungszeichen setze verschluckt er die Leerzeichen.

Der for-Befehl interpretiert das Leerzeichen in der Datei als Trenner. Das kannst du verhindern, indem du die Zeile so schreibst:
for /f „delims=“ %%a in (c:\tester\verzeichnisse.txt) do xcacls „%%a“ >> c:\tester\vererbung.txt

Die „“ um das %%a sind ebenfalls nötig, damit xcacls das dann als einen Parameter sieht.

Wenn ich das richtig sehe, brauchst du die Datei verzeichnisse.txt eigentlich gar nicht:
for /r /d %%a in (y:\dokumente*.*) do xcacls „%%a“ >> c:\tester\vererbung.txt
Das sollte eigentlich das gleiche bewirken.

Sebastian.

Hallo Sebastian,

besten dank, der delim war’s der delim war’s *hihihi*

Ich wusste, es konnte nur eine Kleinigkeit sein.

Besten dank.

Das mit der Zwischendatei stimmt, die bräuchte ich nicht für den Aufruf, die brauche ich aber für Dokumentationszwecke, also warum dann nicht auch verwenden.

Problem gelöst, besten dank.

Triefnase