オブジェクトを並び替える

 パイプラインを流れるオブジェクトは、Sort-Objectコマンドレットで並び替えることができます。次の例ではディレクトリ内のファイル・ディレクトリ一覧を並べ替えています。

PS U:\PS> Get-ChildItem | Sort-Object LastWriteTime


    ディレクトリ: U:\PS


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        2010/09/08      6:52            Folder2
d----        2010/09/08      6:52            Folder1
-a---        2010/09/08      6:53       9069 File1.txt
-a---        2010/09/08      6:54       9236 File2.txt


PS U:\PS>

 -Descendingオプションをつけると並び替えの順序が逆になります。

PS U:\PS> Get-ChildItem | Sort-Object LastWriteTime -Descending


    ディレクトリ: U:\PS


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2010/09/08      6:54       9236 File2.txt
-a---        2010/09/08      6:53       9069 File1.txt
d----        2010/09/08      6:52            Folder1
d----        2010/09/08      6:52            Folder2


PS U:\PS>

 -InputObjectオプションを指定することにより、変数に格納されているオブジェクトを並び替えることもできます。

PS U:\PS> $items=Get-ChildItem
PS U:\PS> Sort-Object -InputObject $items


    ディレクトリ: U:\PS


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        2010/09/08      6:52            Folder1
d----        2010/09/08      6:52            Folder2
-a---        2010/09/08      6:53       9069 File1.txt
-a---        2010/09/08      6:54       9236 File2.txt


PS U:\PS>
inserted by FC2 system