2012-11-12 11 views
15

Ho bisogno di un modo semplice per creare un elenco di tutti i file in una determinata cartella. (ricorsivamente)Windows: come elencare i file in modo ricorsivo con le dimensioni e l'ultima data di accesso?

Ogni file deve essere in una riga singola. Ho anche bisogno della dimensione del file e dell'ultima data di accesso sulla stessa riga, separati da un carattere speciale.

L'uscita (file di testo) dovrebbe essere simile a questo:

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' non sembra essere un'opzione, perché i tedeschi I caratteri speciali vengono incasinato in questo modo. (Öäüß)

PowerShell gestisce i caratteri speciali bene, ma non ho potuto fare in modo che le informazioni relative a un file finisce in una sola riga:

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

risposta

29

provare questo:

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

non male, ma uccide il tedesco "Umlaute": "D: \ temp \ ???????????????? boink.txt" | "05.11.2012 15:31:28 "|" 0 " –

+1

ho aggiunto -encoding predefinito al cmdlet export-csv e funziona! –

+0

@BaineWedlock Buono! Ho dimenticato di menzionare il parametro '-encoding'! –

Problemi correlati