ナスです。

昨年の夏に、Windows の du についての記事を書きました。(なぜか今まで書いた記事の中で一番アクセスが多いです。意外。)

はいナスです。 duコマンドって知ってますよね? Linuxやmacでディレクトリごとのディスク使用容量を見るあのコマンドです。 って私もついこないだ知ったんですけどね。 ディスクフルになった時の対応で大活躍のコマンドです。 そんなコマンドをWindows使ってる時に...

nasrinjp1.hatenablog.com

PowerShell でちょっとしたスクリプトを書いてるパターンと、sysinternals のツールを使うパターンの 2 種類だと思ってましたが、日経 NETWORK 2017.01 号の p15 にワンライナーで du 相当のコマンドが紹介されていたので、実際にやってみました。しかも指定したサイズ以上のファイルをファイルサイズ順に並べ替えて表示できるのでいいですね。

AWS に、Windows Server 2016 を起動して、特に何も設定せずに試しています。

PS C:\Users\Administrator > $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      14393  576

C:\User 配下にテスト用のでかいファイルを作って、dir をかけた結果です。

Where-Object で 500 バイト以上のファイルだけを表示させてみました。

PS C:\Users\Administrator > Get-ChildItem -Path C:\Users -Recurse | Where-Object Length -ge 500 | Select-Object FullName,  Length | Sort-Object Length -Descending

FullName                                                                Length
--------                                                                ------
C:\Users\Administrator\testfile                                    10737418240
C:\Users\Administrator\Links\Downloads.lnk                                 978
C:\Users\Administrator\Desktop\EC2 Microsoft Windows Guide.website         554
C:\Users\Administrator\Desktop\EC2 Feedback.website                        527
C:\Users\Administrator\Links\Desktop.lnk         

これだけできれば、この記事の最初に紹介した du ツールはいらないですね。時々、フリーのツールをインストールすることが禁止されている環境がありますが、PowerShell ならさすがにつかってもいいと思いますので、いろいろ試してみてください。

元記事はこちら

du よりいい感じの結果を PowerShell で [cloudpack OSAKA blog]