空き領域だけ
呼び方いろいろ
フォルダサイズだけ
というか
フォルダ容量
というか。
ディレクトリサイズ
というか。
ディレクトリ領域
というか。
空き容量(空き領域)だけ
例えば
Dir C:\%Userprofile%\
とすると
2023/06/30 00:09 <DIR> .
2023/06/21 00:00 <DIR> ..
------------------------
20XX/0X/XX 00:00 <DIR> S
20XX/0X/XX 00:00 <DIR> V
0 個のファイル 0 バイト
XX 個のディレクトリ XX,XXX,XXX,XXX バイトの空き領域
ということは、タイムスタンプを消すといいわけです。
タイムスタンプはコロンがあります。
コロンを含まなければいい。
D:\hoge
に出力する。
@echo off
CD /D "C:\%USERPROFILE%"
dir | find /v":" > D:\Hoge\PartitioSize.txt
@echo on
そうすると
0 個のファイル 0 バイト
XX 個のディレクトリ XX,XXX,XXX,XXX バイトの空き領域
ここだけ表示されます。
使用量を知る
今度はこれに/S
オプションを加えます。
dir /s | find /v":"
------------------
(大量に出る)
14 個のファイル 239,770 バイト
(大量に出る)
|
|
------------------
XXXXX 個のファイル XXX,XXX,XXX,XXX バイト <-使用しているサイズ
XXXXX 個のディレクトリ XX,XXX,XXX,XXX バイトの空き領域
これはALT+ENterで表示されるプロパティの
サイズ
ディスク上のサイズ
とは一致しない。
ファイルなどの「サイズ」と「ディスク上のサイズ」の違いは?
@echo off
CD /D "C:\%USERPROFILE%"
dir /S | find /v":" > D:\Hoge\PartitioSize.txt
@echo on
しかし、こうすると存在するサブフォルダをカウントするため最後の2行だけが必要なのに、やたら長くなってしまう。
しかし、最後の2行だけ出力する方法が思いつかない。
なお、今回は数字だけなのでUTF-8で出す必要はない。
また、UTF-8で出すとファイルの容量が大きくなる。
ネットワークフォルダ
また、ネットワーク上のフォルダについて結果は取得できるときがあるが、エラーが表示される場合がある。
この時のネットワーク上のフォルダは S:\
など割り当てられているかPushDで割り当てた場合にCD
が有効となる。
CD /D "\\Server\name"
などという書き方はできない。
やっぱりバッチファイルはUTF-8だと動かない
今のテキストファイルはデフォルトがUTF-8になっている。(メモ帳も)
一度新規作成して、あとで文字コードをANSIに変える必要がある。