2014-02-13 8 views
6

Wie kann ich die Formatierung der Powershell-Ausgabe ändern?
Ich laufe dies:
Powershell get-childitem Ausgabeformatierung

cgi -Recurse K:\AppData\*.* -Filter *.model | ? {$_.LastWriteTime -gt (Get-Date).AddDays(-6)} | sort LastWriteTime -descending >> C:\AAA\result.txt 

Das Ergebnis, das ich in diesem Format bekam:

LastWriteTime   Name         Directory 
-------------   ----         ----- 
13/02/2014 11:29 AM 20-300_3001_REV02_ECR4431.CATPart  K:\AppData\ 
13/02/2014 11:29 AM 20-300_3001_REV02_ECR4431.CATPart  K:\AppData\ 
13/02/2014 11:29 AM 20-300_3001_REV02_ECR4431.CATPart  K:\AppData\ 
:

Directory: K:\AppData\ 


Mode    LastWriteTime  Length Name                                                 
----    -------------  ------ ----                                                 
-a---  13/02/2014 11:29 AM 7269129 20-300_3001_REV02_ECR4431.CATPart 
-a---  13/02/2014 11:29 AM 7269129 20-300_3001_REV02_ECR4431.CATPart 
-a---  13/02/2014 11:29 AM 7269129 20-300_3001_REV02_ECR4431.CATPart 

Wie kann ich das Ausgabeformat dies zu ändern

+0

es jetzt funktioniert, mein Fehler .... –

Antwort

0

Sie können die Eigenschaften mitneu ordnen(Auswahl):

gci -Recurse K:\AppData\*.* -Filter *.model | 
? {$_.LastWriteTime -gt (Get-Date).AddDays(-6)} | 
sort LastWriteTime -descending | 
Select LastWriteTime,Name,Directory 
+0

Vielen Dank für Kommentare, aber es wird nicht funktionieren .. ... habe ich select-object schon ausprobiert .... der resault ist immer noch der gleiche .... –

+0

Kannst du das Script posten wo du das tridst? Ich habe nie gesehen, dass das nicht funktioniert. – mjolinor

+0

Ich habe den gleichen Code ausprobiert, den Sie oben gepostet haben, es gab mir das gleiche Ergebnis. Das Format ändert sich überhaupt nicht. Ich denke, dass ich css-Datei verwenden muss, um damit zu arbeiten, die ich es nicht zu complx ...... –

4

Ich weiß, die übliche Antwort ist, nicht über die Format- * Cmdlets verwenden, da der Ausgang kann wirklich nicht von anderen Cmdlets verwendet werden, aber da dies eine Formatierung Frage wie wäre es so etwas wie:

get-childitem -Recurse K:\AppData\*.* -Filter *.model | ? {$_.LastWriteTime -gt (Get-Date).AddDays(-6)} | sort LastWriteTime -descending | format-table LastWriteTime, Name, Directory >> C:\AAA\result.txt 

der einzige Nachteil ich sehen kann, wenn der Verzeichnisname zu lang endet, müssen Sie versuchen, zu spielen mit dem Hinzufügen von entweder -Wrap oder -AutoSize bis zum Ende der Format-Tabelle Cmdlet.

Wenn keiner von denen die Breite Problem löst (vorausgesetzt, Sie haben sogar eine), fand ich eine (http://posholic.com/2010/11/11/powershell-quick-tip-creating-wide) -tables-mit-Power /] über wirklich breite Tabellen zu erstellen, so dass Sie mit so etwas wie könnten am Ende:

get-childitem -Recurse K:\AppData\*.* -Filter *.model | ? {$_.LastWriteTime -gt (Get-Date).AddDays(-6)} | sort LastWriteTime -descending | format-table LastWriteTime, Name, Directory -AutoSize | Out-String -Width 1024 >> C:\AAA\result.txt