PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verzeichnissabbild erstellen, jedoch sollen nur 0 Byte Dateien erzeugt werden


orda
2006-03-07, 22:14:22
Hallihallo!

Ich hab mal wieder nen Problem. Ich möchte ein Verzeichnissabbilderstellen, so wie eine Art "dir /s >yxz.txt ", jedoch nur als Realordnerstruktur in der diese Dateien dann die Namen der Originaldateien besitzen, selber aber nur leere 0 Byte Dateien sind.

Hoffe ihr versteht was ich meine..

Gruß orda

dariegel
2006-03-07, 23:11:43
Hmmm, glaube da wirst du um ein kleines selbst geschriebenes Proggi, welches eine Ordner-/Dateistruktur rekursiv ausliest und mit 0-Byte-Files wieder ausspuckt, nicht herumkommen.

orda
2006-03-08, 07:19:57
Aber ich denke, das wäre mit Kanonen auf Spatzen geschossen, da es dieses Programm ja bestimmt schon irgendwo gibt.

Hat noch jemand Tipps?

littlejam
2006-03-08, 10:59:40
xcopy /e /t /h . c:\temp\

for /f "tokens=1,2,3* delims=\" %a in ('dir /b /s') do echo .> c:\temp\%d

Die Pfade und Tokens musst du noch entsprechend anpassen.
Das macht dir zwar keine leeren Dateien, sondern nur Dateien mit nem . drinne aber irgendwas ist ja immer ;)
Keine Lust, jetzt noch mit dem Echo rumzuprobieren.

Gruß

orda
2006-03-08, 15:55:10
Wow, danke littlejam!
Er kopiert er jetzt aber nur die Ordner und nicht die Dateien..wie kann ich das beheben? Werde mal mit den Parametern von dir rumspielen.

orda
2006-03-08, 16:02:32
Was bedeutet die Anweisung "tokens=1,2,3*"? Meine DOS Zeiten sind schon sehr lange her...Ist das ein Zeiger auf irgendwas?

littlejam
2006-03-08, 17:20:14
Aalso..
dat xcopy kopiert dir nur die Verzeichnisse, ohne Dateien.

Die for-Schleife erzeugt dann die Dateien.
tokens gibt an, in wieviele Stücke du jede einzelne 'dir /s /b' -Zeile zerstückeln willst, das * bedeutet, dass das letzte Stück der Rest ist.
Trennzeichen (aka delims) ist der \ weil der die Ordner untereinander trennt.

Je nachdem wie lang dein Pfad ist (also wieviel \ drinne sind) must du die tokens verändern.
Bei nem längeren Pfad etwa "tokens=1,2,3,4,5*" und bei nem kürzeren nur "tokens=1*"
Auf die veränderte Position greifst du dann per %a-z zu. %d ist hier also der 4. Teil.
Bei tokens=1,2,3,4,5* wäre der letzte teil also %f.
Versuch mach kluch, lasse dir am besten erstmal das Ergebnis (echo %d statt echo .>%d) ausgeben bevor du die Dateien erzeugst.

Ich hoffe das hilft :D

Gruß