Dirコマンドでは、ファイルのLengthは表示されるが、フォルダーのLengthは表示されない。
そこで、PowerShell: ◆関数を作るで作った関数を修正し、フォルダーのLengthも表示するDirコマンド(関数)を作ってみた。
function dir3( $comment = @' dirコマンドにフォルダーのサイズを追加して表示する param( 例: ##################################################### Set-PSDebug -Strict if(${??}) {$comment;return} Get-ChildItem -Path $Path | |
あまり変わったところはないが、PsIsContainerプロパティでフォルダーかどうか判定しフォルダーに対してのみlengthを追加している。
(ファイルの場合はそのままlengthを返している)
Sortコマンドでは、昇順と降順の組み合わせを連想配列形式で指定している。
結果はこんな感じ。
Selectすると表示書式が若干変わってしまう(クラスが変わるので仕方がない)。
また、Cドライブ直下などでやると若干時間がかかる。(だから標準ではlength表示しないのだろう)
結果でちょっと気になるのがPerfLogsフォルダ。
lengthが表示されていない。
中身を見てみるとファイルが存在していないためNullとなっている。
こんな時はif(SumがNullだったら)とかやりたくなるが以下のようにすると簡単に0表示できる。
measure -Sum length).Sum + 0 |
ん~、Null + 0 は 0 なんですね。
Powershellっておもしろい。
0 件のコメント:
コメントを投稿