如果您使用Get-ChildItem
,则会获得类似
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 3/1/2006 9:03 AM Bluetooth Software
d---s 5/10/2006 8:55 AM Cookies
d---- 5/9/2006 2:09 PM Desktop
很好。我现在只想将 LastWriteTime 输出更改为 CreationTime 。其他一切都应该是一样的。有什么想法吗?
答案 0 :(得分:5)
您可以使用Select-Object
或任何Format-*
cmdlet
Get-ChildItem | Select-Object Mode,CreationTime,Length,Name
答案 1 :(得分:5)
对于显示列的一次性更改,最简单的管道select
或Format-Table
。如果你想让它成为一个持久的变化,你需要处理管理powershell如何显示文件系统对象的格式文件。
不建议编辑现有格式文件(可能在$env:SystemRoot\system32\WindowsPowershell\v1.0\FileSystem.format.ps1xml
),因为该文件底部有一个签名块。更改文件内容将使签名无效,这可能会导致问题。
相反,您可以定义自己的格式文件,该文件将覆盖默认格式文件。将以下文件另存为FileFormat.format.ps1xml
并运行
Update-FormatData -Prepend c:\FileFormat.format.ps1xml
默认情况下,系统会显示CreationTime
,而非LastWriteTime
。
格式化文件内容(从真实格式文件复制,只更改了相关位):
<Configuration>
<SelectionSets>
<SelectionSet>
<Name>FileSystemTypes</Name>
<Types>
<TypeName>System.IO.DirectoryInfo</TypeName>
<TypeName>System.IO.FileInfo</TypeName>
</Types>
</SelectionSet>
</SelectionSets>
<ViewDefinitions>
<View>
<Name>children</Name>
<ViewSelectedBy>
<SelectionSetName>FileSystemTypes</SelectionSetName>
</ViewSelectedBy>
<GroupBy>
<PropertyName>PSParentPath</PropertyName>
<CustomControlName>FileSystemTypes-GroupingFormat</CustomControlName>
</GroupBy>
<TableControl>
<TableHeaders>
<TableColumnHeader>
<Label>Mode</Label>
<Width>7</Width>
<Alignment>left</Alignment>
</TableColumnHeader>
<TableColumnHeader>
<Label>CreationTime</Label>
<Width>25</Width>
<Alignment>right</Alignment>
</TableColumnHeader>
<TableColumnHeader>
<Label>Length</Label>
<Width>10</Width>
<Alignment>right</Alignment>
</TableColumnHeader>
<TableColumnHeader/>
</TableHeaders>
<TableRowEntries>
<TableRowEntry>
<Wrap/>
<TableColumnItems>
<TableColumnItem>
<PropertyName>Mode</PropertyName>
</TableColumnItem>
<TableColumnItem>
<ScriptBlock>
[String]::Format("{0,10} {1,8}", $_.CreationTime.ToString("d"), $_.CreationTime.ToString("t"))
</ScriptBlock>
</TableColumnItem>
<TableColumnItem>
<PropertyName>Length</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>Name</PropertyName>
</TableColumnItem>
</TableColumnItems>
</TableRowEntry>
</TableRowEntries>
</TableControl>
</View>
</ViewDefinitions>
</Configuration>
答案 2 :(得分:3)
如果您想要显示属性CreationTime而不是LastWriteTime,那么您可以将Get-ChildItem的输出传递给Select-Object并指定要选择的属性:
Get-ChildItem | Select Mode, CreationTime, Length, Name
答案 3 :(得分:2)
,您可以使用动态类型数据:
PS III> # UNTESTED: if work...you can paste this in your profile
PS III>
PS III> Update-TypeData -TypeName System.IO.FileInfo,System.IO.DirectoryInfo -MemberName DFPR DefaultDisplayPropertySet Mode,CreationTime,Length,Name
答案 4 :(得分:0)
请试试
> get-childitem | sort-object -property name, creationtime, lastwritetime
您将在 PowerShell 中看到如下所示:
Directory: C:\project\CNN I\Maya
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 1/11/2021 11:36 PM 32187 ocean wake foam.JPG
-a---- 1/6/2021 12:28 AM 121100 ocean_clean.ma
-a---- 1/4/2021 3:59 PM 122199 ocean_clean_1.ma
您没有看到创建日期,但它实际上是按名称和创建日期 (creationtime
) 然后是修改日期 (lastwritetime
) 排序的。如果您想验证这一点,请尝试> get-childitem | sort-object lastwritetime
。它将按修改日期列出文件。