フォルダの容量を調べたい
一つずつ画面から調べるのは面倒なので、コマンドプロンプトで作成しました。
下記がソースです。調べたいフォルダと同じ階層に置いてたたくと、AllFolderSizeList.txtにフォルダ名:バイト数で記載されます。
最初のFor文でフォルダ一覧の取得、その後フォルダごとに中のファイルサイズを調べ、最終行の合計サイズをファイルに出力します。ファイルはUTF-8で保存してください。
フォルダ
結果
ソース
GetAllFolderSize.bat
@echo off
rem 変数のおまじない
setlocal enabledelayedexpansion
rem 文字コード UTF-8
chcp 65001
rem 結果ファイル
set outFile=%~dp0AllFolderSizeList.txt
rem 結果ファイルの削除
del !outFile!
rem 全件検索の場合
for /D %%a in (*) do (
set fname=%%a
set size=""
echo %%a
for /f "tokens=3" %%b in ('dir /s /a "%%a"2^>nul ^| find "File(s)"2^>nul') do (
set size=%%b
)
if not !size! == "" (
echo !fname!:!size!バイト>>!outFile!
)
)
指定したフォルダの容量を調べたい
フォルダ名を指定して容量を調べたい場合は、FolderNames.txtにフォルダ名の一欄を記載します。
GetFolderSize.bat
@echo off
rem 変数のおまじない
setlocal enabledelayedexpansion
rem 文字コード UTF-8
chcp 65001
rem 入力ファイル
set inFile=%~dp0FolderNames.txt
rem 結果ファイル
set outFile=%~dp0FolderSizeList.txt
rem 結果ファイルの削除
del !outFile!
for /f "tokens=*" %%a in (!inFile!) do (
rem 全件検索の場合→ for /D %%a in (*) do (
set fname=%%a
set size=""
echo %%a
for /f "tokens=3" %%b in ('dir /s /a "%%a"2^>nul ^| find "File(s)"2^>nul') do (
set size=%%b
)
if not !size! == "" (
echo !fname!:!size!バイト>>!outFile!
)
)
ネットワーク上にあるフォルダの容量を調べたい
ネットワークフォルダを調べる場合は、処理の初めと終わりに以下を追加してください。
GetAllFolderSize.bat
pushd ネットワークフォルダ
~~~GetAllFolderSize.batのFor文~~~
popd
参考にしたサイト
ほとんどこのサイトのコマンドを使いましたが、オプションが足りず正確な容量ではなかったので少し修正しました。
バッチの書き方を調べるのに便利でした。