PowerShellで特定拡張子を再帰的に検索しNTFS圧縮処理をする。

コンピュータ

PowerShellのls(Get-ChildItem)コマンドで再帰的にファイルを検索し、検索結果のファイルを外部コマンドcompactでNTFS圧縮をします。

ls D:\*.avi -Recurse | % { compact $_.FullName /c }

利用する場合はD:\*.aviを任意のパス、拡張子に変更してください。

データ保存用のストレージの空き容量が不足してきまして調査したところ、AnimeEffectsというアプリケーションで出力する無劣化、透過のコーデックUt videoでavi形式のファイルが、結構な容量を使っているようでした。

そのaviファイルをcomapctでNTFS圧縮したところ10%~30%程度圧縮されました。動画ファイルは圧縮済みなので、圧縮処理を施してもファイルサイズは小さくならないと思っていたのですが、試してみると小さくなるファイルもあるようです。早速フォルダ事compactを実行しようと思いましたが、処理に長時間要するのは望まないので、拡張子を指定して個別にファイル圧縮することにしました。

PowerShellのls(Get-ChildItem)はオプションのRecurseをつけると再帰的に検索してくれます。それで拡張子がaviのファイルのみ抽出し、それをパイプラインでcompactへつないであげるだけです。このような使い方がCUIならではの便利さといった感じです。

コメント