Windows
MS-DOSでディスクの空き容量を確認する
えだ
更新日:2021/08/04
B3Sリゾート移住計画担当の”えだ”です。リゾート地でエンジニアライフを過ごすのが僕の夢なのです。
ちなみにキャベツが好きで今日もグリーンの服を着ています。
では早速本題に入ります。
MS-DOSでディスクの空き容量を確認する
WindowsのMS-DOSを使ってPCのディスク容量情報を取得します。
動作検証を行ったのは次のバージョンです。
Microsoft Windows [Version 6.1.7601]
ソースコード(MS-DOS)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
rem ホスト名を取得します。 rem 「usebackq」はバッククォートで囲まれた文字列をコマンドとして実行するオプションです。 rem 実行ファイルにするなら全ての%を重ねる必要があります。(%t → %%t) for /F "usebackq" %t IN (`hostname`) DO SET HOSTNAME=%t rem 「wmic logicaldisk」で取得したドライブ情報より、Cドライブの空き領域を値だけ取得します。 rem ちなみに「delims」は区切り文字を指定しています。 for /f "usebackq delims== tokens=2" %x in (`wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value`) do set FREESP=%x rem 同じ要領でCドライブのサイズを取得します。 for /f "usebackq delims== tokens=2" %x in (`wmic logicaldisk where "DeviceID='C:'" get Size /format:value`) do set SIZESP=%x rem ホントは数値をそのまま扱いたいんだけど、数値型上限(2147483647)を避けるため苦肉の策で下6桁を削る。「/a」は数値として認識させるおまじない。 set /a FREESP=%FREESP:~0,-6% set /a SIZESP=%SIZESP:~0,-6% rem 空き領域÷サイズで空き容量率を算出。 set /a PERCENTAGE=100 * FREESP / SIZESP rem 出力。ファイル保存なら > FILENAMEで。 echo %HOSTNAME% %PERCENTAGE% % |
コレを作った経緯など
とあるPCが「ディスク容量不足で動作不安定になったよー」という報告を受けて
他のPCは大丈夫かな? 調べといてよという話になりました。
その時にいちいち調べるのは メンドウ 非効率だな~と思って作ってみたのがキッカケです。
最初は難しそうだな~と思って始めましたが、意外とぱぱっと出来たので大いに満足しています。