適材適所

WindowsやPowerShellやネットワーク、IBMなどのシステム系の話など気になったことも載せているブログです。

【PowerShell】デスクトップのファイル一覧を取得する【Get-ChildItemワンライナー】

PowerShellを使ってデスクトップのファイルやフォルダの一覧をCSVで出力するワンライナーです。

ちょっとした作業を楽に。あなたにささやかな効率化を。ワンライナーシリーズです。

自分の備忘録も兼ねて色々なパターンを書きちらかします。

コマンド

ファイルとフォルダの一覧をコンソール画面に出力する

単純にコンソールに出力するときはGet-ChildItemコマンドレットを使います。

参考記事⇒

 
Get-ChildItem -Path ([System.Environment]::GetFolderPath("Desktop"))

情報を絞ってコンソール画面に出力する

Select-Objectコマンドレットを使うと出力する項目を絞ることができます。

 
Get-ChildItem -Path ([System.Environment]::GetFolderPath("Desktop"))|Select-Object Name

ファイルに絞ってコンソール画面に出力する

ファイルだけをコンソール画面に出力するときはWhere-Objectを使います。

ちなみにPsIsContainerプロパティはフォルダかどうかのプロパティです。

 
Get-ChildItem -Path ([System.Environment]::GetFolderPath("Desktop"))|Where-Object{!($_.PsIsContainer)}

フォルダに絞ってコンソール画面に出力する

フォルダだけに絞って出力するときも同様です。

 
Get-ChildItem -Path ([System.Environment]::GetFolderPath("Desktop"))|Where-Object{$_.PsIsContainer}

ファイルに出力する

Get-ChildItemコマンドレットとExport-Csvコマンドレットを組み合わせて、デスクトップにdesktop.csvというファイル名でデスクトップのファイルやフォルダ一覧を書き出します。

 
Get-ChildItem -Path ([System.Environment]::GetFolderPath("Desktop"))|Export-Csv -Path (Join-Path ([System.Environment]::GetFolderPath("Desktop")) 'desktop.csv') -Encoding default -NoTypeInformation

再帰的にファイルに出力する

Get-ChildItemコマンドレットに-Recurseオプションを付けると子フォルダ以下の情報も書き出してくれます。

 
Get-ChildItem -Path ([System.Environment]::GetFolderPath("Desktop")) -Recurse|Export-Csv -Path (Join-Path ([System.Environment]::GetFolderPath("Desktop")) 'desktop.csv') -Encoding default -NoTypeInformation

項目を絞ってファイルに出力する

名前とフルパスだけCSVに書き出したいときはSelect-Objectコマンドレットをかませます。

 
Get-ChildItem -Path ([System.Environment]::GetFolderPath("Desktop"))|Select-Object Name,Fullname|Export-Csv -Path (Join-Path ([System.Environment]::GetFolderPath("Desktop")) 'desktop.csv') -Encoding default -NoTypeInformation

Select-Objectコマンドレットの後をいじれば欲しい項目だけCSVに出力することができます。

終わりに

ついつい、作業中のファイルはデスクトップに置いてしまいがちですが、デスクトップは常にキレイにしておきたいですね。

というわけで、今回のワンライナーは終わりです。

ここまでお読みいただきありがとうございました。