【PowerShell】ファイル一覧をCSV形式で出力する


この記事はプロモーションを含みます。

PowerShell

ホーム > PowerShell 逆引きリファレンス

以前、PowerShellで特定のフォルダ配下をサブディレクトリを含めた(再帰的)ファイルの一覧を取得する方法をご紹介しました。
今回は、取得したファイルリストをCSV形式で出力する方法を解説します。

サンプルのソースコードになります。
1行目は、ファイルリストを取得するフォルダを定義します。
2行目で、サブフォルダ配下を含めてファイルリストを取得し、CSV形式で保存します。

使用方法は、以下のサンプルをテキストエディタなどにコピペして、保存します。
保存する際の拡張子は「.ps1」とすることで、PowerShellファイルとして実行出来るようになります。
ダブルクリックで実行できない場合は下記の記事を参考にしてみてください。

サンプル

$path = "C:\work"
Get-ChildItem -Recurse $path | Select-Object Directory, Name, FullName, Length, LastWriteTime | Export-Csv -NoTypeInformation -Encoding Default .\ps1.txt

サンプル実行時の出力結果

"Directory","Name","FullName","Length","LastWriteTime"
,"フォルダ1","C:\work\フォルダ1",,"2022/01/14 14:21:55"
,"フォルダ2","C:\work\フォルダ2",,"2022/01/14 14:17:22"
"C:\work","新しいテキスト ドキュメント_1.txt","C:\work\新しいテキスト ドキュメント_1.txt","0","2022/01/11 12:44:31"
"C:\work","新しいテキスト ドキュメント_2.txt","C:\work\新しいテキスト ドキュメント_2.txt","0","2022/01/11 12:44:31"
"C:\work","新しいテキスト ドキュメント_3.txt","C:\work\新しいテキスト ドキュメント_3.txt","0","2022/01/11 12:44:31"
"C:\work\フォルダ1","テキスト1.txt","C:\work\フォルダ1\テキスト1.txt","3","2022/01/12 18:35:11"
"C:\work\フォルダ1","テキスト2.txt","C:\work\フォルダ1\テキスト2.txt","3","2022/01/12 18:35:11"
"C:\work\フォルダ1","テキスト4.txt","C:\work\フォルダ1\テキスト4.txt","3","2022/01/12 18:35:11"
"C:\work\フォルダ2","テキスト1.txt","C:\work\フォルダ2\テキスト1.txt","3","2022/01/12 18:35:11"
"C:\work\フォルダ2","テキスト3.txt","C:\work\フォルダ2\テキスト3.txt","3","2022/01/12 18:35:11"

ここからは、サンプル2行目の処理を各コマンドレットに分けて解説していきます。

Get-ChildItem {オプション} {ファイルリストを取得するパス}

ディレクトリ情報を取得するコマンドレットになります。
今回はサブディレクトリも含めて情報を取得するため、オプションとして「-Recurse」を付けています。

Select-Object {オプション}

オブジェクトのプロパティ情報を取得するコマンドレットになります。
今回は、「Get-ChildItem」で取得した情報から、[Directory(格納パス)」、「Name(フォルダ名、ファイル名)」、「FullName(フルパス)」、「Length(ファイルサイズ)」、「LastWriteTime(更新日時)」を抽出しています。

Export-Csv {オプション} {出力するテキストのパス・ファイル名}

オブジェクトのカンマ(,)区切りでファイルに出力するコマンドレットになります。
サンプルで使用しているオプション「-NoTypeInformation」は、出力結果の1行目に不要な文字列「TYPE Selected.System.IO.DirectoryInfo」を出力させないようにするため、設定しています。

「-Encoding」は、出力するファイルの文字コードを指定します。
サンプルでは、「Default」を指定しており、「ASCII」が文字コードとして使用されます。
サクラエディタで開くと「SJIS」として認識されていました。

記事は以上です。Windowsバッチなどと比べて簡単に取得できました。
取得する情報も簡単に変更出来るのも便利で良いですよね。
この機会にしっかり覚えておきましょう。

コメント

タイトルとURLをコピーしました