9

使用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に変更したいだけです。他のすべては同じでなければなりません。何か案は?

4

5 に答える 5

7

Select-Objectまたは任意のFormat-*コマンドレットで選択できます

Get-ChildItem | Select-Object Mode,CreationTime,Length,Name
于 2012-09-26T17:01:46.567 に答える
5

表示された列を 1 回限り変更する場合は、 selectorにパイプするの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>
于 2012-09-26T20:24:04.490 に答える
3

LastWriteTimeではなくCreationTimeプロパティを表示する場合は、Get-ChildItemの出力をSelect-Objectにパイプして、選択するプロパティを指定できます。

Get-ChildItem | Select Mode, CreationTime, Length, Name
于 2012-09-26T17:01:37.567 に答える
3

V3 では、動的型データを使用できます。

    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
于 2012-09-27T04:14:18.997 に答える
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。更新日ごとにファイルが一覧表示されます。

于 2021-03-13T22:02:10.173 に答える