PowerShell的get-childitem输出格式

我如何更改PowerShell输出的格式?
我正在运行这个:

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

我得到的结果是这种格式:

 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 

我怎样才能改变输出格式为:

 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\ 

我知道通常的答案是,不要使用format- * cmdlet,因为输出不能被其他cmdlet使用,但是由于这是一个格式化问题,所以类似这样:

 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 

我可以看到唯一的缺点是,如果目录名称过长,则可能需要尝试在format-table cmdlet的末尾添加-Wrap-AutoSize

如果这两个都不能解决宽度问题(假设你有一个),我发现一个(页面)[http://poshoholic.com/2010/11/11/powershell-quick-tip-creating-wide-tables-with -powershell /]关于创建非常宽的表,所以你最终可能会得到如下结果:

 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 

您可以使用Select-Object (选择)重新排序属性:

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