PowerShellでファイル一覧を取得し各ファイルの情報をCSV化する方法 †任意のフォルダ(ディレクトリ)のファイル一覧、更新日、ファイルサイズなどを取得し 関連記事 †動作確認環境 †PS C:\> (Get-WmiObject Win32_OperatingSystem).Caption Microsoft Windows 10 Pro PS C:\> ($PSVersionTable).PSVersion.toString() 5.1.17134.228 ファイル名, フルパス名, ファイルサイズ, 更新日付 を取得 †以下のスクリプト例は、テンポラリーフォルダ($ENV:TEMP)を対象にして実行してみます。 テンポラリーフォルダのファイル一覧を取得する †> cd $ENV:TEMP > Get-ChildItem * -Recurse | Select-Object Name, FullName, Length, LastWriteTime 画面への出力は以下の通りです。 Name FullName ---- -------- <省略> TCD31B6.tmp C:\Users\sakura\AppData\Local\Temp\TCD31B6.tmp TCD31C7.tmp C:\Users\sakura\AppData\Local\Temp\TCD31C7.tmp TCD31D7.tmp C:\Users\sakura\AppData\Local\Temp\TCD31D7.tmp TCD31E8.tmp C:\Users\sakura\AppData\Local\Temp\TCD31E8.tmp <省略> CSVに出力する †上記では、画面に出力できたのですが、画面幅の都合上、見切れてしまいました。 > cd $ENV:TEMP > Get-ChildItem * | Select-Object Name, FullName, Length, LastWriteTime | Export-Csv -Encoding Default $HOME/Desktop/templist.csv 上記の例では、デスクトップに templist.csv ファイル名でCSV出力を行っています。 サブディレクトリも対象としたい場合 †指定したディレクトリ内にあるディレクトリ内部も対象としたい場合は、-Recurse オプションを使用すれば実現できます。 > cd $ENV:TEMP > Get-ChildItem * -Recurse | Select-Object Name, FullName, Length, LastWriteTime | Export-Csv -Encoding Default $HOME/Desktop/templist.csv 上記の例でも、デスクトップに templist.csv ファイル名でCSV出力を行っています。 フォルダのみ or ファイルのみを対象としたい †ディレクトリのみ、ファイルのみの一覧を表示する方法 ディレクトリのみ対象とする †ディレクトリのみなので、ファイルサイズがありませんので、Lengthは省略しています。
ファイルのみ対象とする †
|