2012-11-12 8 views
15

Potrzebuję prostego sposobu na utworzenie listy wszystkich plików w określonym folderze. (rekursywnie)Windows: jak wyświetlać rekursywnie pliki o rozmiarze i ostatniej dacie dostępu?

Każdy plik musi być w jednym wierszu. Potrzebuję również rozmiaru pliku i ostatniej daty dostępu w tym samym wierszu, oddzielonych znakiem specjalnym.

Wyjście (plik.txt) powinien wyglądać następująco:

c:\folder\file1.txt|400|2012-11-12 15:23:08 
c:\folder\file2.txt|200|2012-11-12 15:23:08 
c:\folder\file3.txt|100|2012-11-12 15:23:08 
c:\folder\sub folder\file4.txt|500|2012-11-12 15:23:08 

„Dir” nie wydaje się być rozwiązaniem, ponieważ niemieckie znaki specjalne dostać pomieszane w ten sposób. (Öäüß)

PowerShell obsługuje znaki specjalne dobrze, ale nie mogłem zrobić to tak, że informacje dla jednego pliku kończy się w jednej linii:

get-childitem D:\temp -rec | where {!$_.PSIsContainer} | foreach-object -process {$_.FullName, $_.LastWriteTime, $_.Length} 

Odpowiedz

29

Spróbuj tego:

get-childitem D:\temp -rec | where {!$_.PSIsContainer} | 
select-object FullName, LastWriteTime, Length | export-csv -notypeinformation -delimiter '|' -path file.csv 
+0

Nieźle, ale zabija niemieckiego "Umlaute": "D: \ temp \ ?????????? \ boink.txt" | "05.11.2012 15:31:28 "|" 0 " –

+1

Dodałem kodowanie domyślne do polecenia cmdlet export-csv i działa! –

+0

@BaineWedlock Good! Zapomniałem wspomnieć o parametrze '-encoding'! –

Powiązane problemy