Powershell get-childitem输出格式

Roo*_*oop 7 windows powershell powershell-2.0 powershell-3.0

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

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

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

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
Run Code Online (Sandbox Code Playgroud)

如何将输出格式更改为:

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\
Run Code Online (Sandbox Code Playgroud)

Hun*_*son 5

我知道通常的答案是,不要使用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
Run Code Online (Sandbox Code Playgroud)

我唯一可以看到的缺点是目录名称的结尾是否太长,您可能需要尝试在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
Run Code Online (Sandbox Code Playgroud)


mjo*_*nor 3

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

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