任意のフォルダ(ディレクトリ)のファイル一覧、更新日、ファイルサイズなどを取得し
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出力を行っています。
以下は、上記コマンドで出力した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出力を行っています。
以下は、上記コマンドで出力したCSVを開いた時のキャプチャーです。
サブディレクトリ対象となっているのが確認できます。
ディレクトリのみ、ファイルのみの一覧を表示する方法
として既に記事がありますが、本資料でも、フォルダのみの一覧、ファイルのみの一覧を出力したい場合を以下に記します。
ディレクトリのみなので、ファイルサイズがありませんので、Lengthは省略しています。
> cd $ENV:TEMP > Get-ChildItem * | Where-Object { $_.PSIsContainer } | Select-Object Name, FullName, LastWriteTime | Export-Csv -Encoding Default $HOME/Desktop/templist.csv
> cd $ENV:TEMP > Get-ChildItem * -Recurse | Where-Object { $_.PSIsContainer } | Select-Object Name, FullName, LastWriteTime | Export-Csv -Encoding Default $HOME/Desktop/templist.csv
> cd $ENV:TEMP > Get-ChildItem * | Where-Object { ! $_.PSIsContainer } | Select-Object Name, FullName, LastWriteTime | Export-Csv -Encoding Default $HOME/Desktop/templist.csv
> cd $ENV:TEMP > Get-ChildItem * -Recurse | Where-Object { ! $_.PSIsContainer } | Select-Object Name, FullName, LastWriteTime | Export-Csv -Encoding Default $HOME/Desktop/templist.csv