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に出力することができます。
終わりに
ついつい、作業中のファイルはデスクトップに置いてしまいがちですが、デスクトップは常にキレイにしておきたいですね。
というわけで、今回のワンライナーは終わりです。
ここまでお読みいただきありがとうございました。