Categories: Windows

バッチファイルでファイルのデータサイズを取得する方法

本記事では、バッチファイルを用いて特定のファイルのデータサイズを取得する方法を紹介します。

ファイル名を指定してファイルのデータサイズを取得する方法

以下のコマンドでファイル名を指定して、最終更新日時を取得することができます。「test.txt」の部分を、取得したいファイル名に変更して使用してください。

@echo off
for %%i in (test.txt) do set "UPDATE=%%~zi"
echo %UPDATE% [Byte]
pause

今回は以下の「test.txt」でテストしたところ、サイズの2750669バイトが正しく表示されることが確認できました。このように、表示単位は「バイト」単位になることには注意が必要です。

ファイルサイズをキロバイトやメガバイト単位で出力

しかしながら、大きいファイルサイズのデータを扱うことが多くなっている昨今、バイト単位だと正直見づらい場合もあるのではと思います。

キロバイトやメガバイト単位で出力をするためには、データサイズを1024で割っていけばよく、例えば以下のようなバッチで実現することができます。

@echo off
for %%i in (test.txt) do set "UPDATE=%%~zi"
echo %UPDATE% [Byte]
set /A UPDATE_KB=%UPDATE%/1024
echo %UPDATE_KB% [KByte]
set /A UPDATE_MB=%UPDATE_KB%/1024
echo %UPDATE_MB% [MByte]
pause

以下が出力結果です。

キロバイト及びメガバイトで出力できていることがわかりましたが、値が切り捨てられてしまうことには注意が必要です。より正確な値を出力したい場合には、小数点以下まで出力できるように工夫することが必要ですが、今回の記事はここまでで留めたいと思います。

Haruoka