Getting file size in KB using batch file

To get file size using batch file, we use variable with modifier. Then set /a, performs match operation (divide by 1024). Unlike other examples, this example works on any Windows language.

@echo off
:: Name: file_size.bat
:: Author
:: Calculate file size in KB from %1
set /a size = %~z1 / 1024
echo %size% KB

file_size.bat "c:\files\some_file.dat"

Quotes necessary when there are spaces in file or folder name.

Tested on Windows XP and Windows Server 2003.

xcopy alternative for Windows Vista and Windows Server 2008 – ROBOCOPY

Robocopy – Robust File Copy for Windows is bundled with Windows Server 2008, Windows 7 and Vista. If you can not do something in xcopy, you probably can in robocopy. For example robocopy can:

  • resume on network error, specify number of Retries, etc.
  • ability to copy NTFS permissions and attributes including timestamps;
  • synchronize mode;
  • and a lot more.

Example, copy src_folder to dst_folder including sub-folders:
robocopy C:\src_folder C:\dst_folder /E

robocopy /?

More reading: