読者です 読者をやめる 読者になる 読者になる

くんすとの備忘録

プログラミングや環境設定の覚え書き。

【cmd】ワンライナーで、ディスク使用量の多いディレクトリトップ10を出力する

BAT

シェルスクリプトのワンライナーでやったので、同じ事をcmd(コマンドプロンプト)でもやってみた。

awksedも使わず、標準のコマンドだけで挑戦するマゾプレイ。

(for /f "usebackq tokens=*" %i in (`dir /ad /b`) do @dir /-C %i 2>&1 | findstr /v ":[0-9] ^$" | findstr "のディレクトリ のファイル" | findstr /n .* | sort /r ^
 | for /f "usebackq tokens=1-10" %a in (`findstr .*`) do @(if %a==2: set /a 100000000 + %d) && (if %a==1: echo    %b) ^
) ^
 | (for /f "usebackq tokens=1-3" %a in (`sort /r`) do @(set /p X=: <nul) || (set /a %a-100000000)  && (echo   %b)) ^
 | (for /f "usebackq tokens=1-3" %a in (`findstr /n .*`) do @(set /a %b / 1024) && (echo KB  %c) && (if %a==10:: exit /b)) ^
 | findstr /n .* 

実行結果

1:871925KB  D:\@体験版\Princess-Style体験版
2:764309KB  D:\@体験版\yourdiary体験版
3:724613KB  D:\@体験版\クロウカシス体験版
4:502044KB  D:\@体験版\DRACU-RIOT!~体験版~
5:447118KB  D:\@体験版\りぼる・さもなー体験版
6:322134KB  D:\@体験版\CloverPoint体験版2
7:288341KB  D:\@体験版\G線上の魔王~体験版2~
8:265328KB  D:\@体験版\俺つば体験版~羽田鷹志編プロローグ~
9:250534KB  D:\@体験版\運命予報をお知らせします【体験版】
10:240785KB  D:\@体験版\猫撫ディストーション体験版

※パス名に空白があるとうまく表示されないみたい。
 いろいろやりすぎてもう何だか自分でもわけわかめ。

解くのに疲れたので、ひとまず解説はなし。
分解して順番に実行してみれば内容は辿れると思います……
 

結論

awk使え。

広告