LoginSignup
0
1

バッチファイルでフォルダのサイズを調べ、一覧で表示する。

Last updated at Posted at 2023-10-20

フォルダの容量を調べたい

一つずつ画面から調べるのは面倒なので、コマンドプロンプトで作成しました。

下記がソースです。調べたいフォルダと同じ階層に置いてたたくと、AllFolderSizeList.txtにフォルダ名:バイト数で記載されます。
最初のFor文でフォルダ一覧の取得、その後フォルダごとに中のファイルサイズを調べ、最終行の合計サイズをファイルに出力します。ファイルはUTF-8で保存してください。

フォルダ

image.png

結果

image.png
プロパティで確認した値
image.png

ソース

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

参考にしたサイト

ほとんどこのサイトのコマンドを使いましたが、オプションが足りず正確な容量ではなかったので少し修正しました。

バッチの書き方を調べるのに便利でした。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1