How can I check the size of a file in a Windows batch script?

batch-file, filesize

Solution

If the file name is used as a parameter to the batch file, all you need is `%~z1` (1 means first parameter)

If the file name is not a parameter, you can do something like:

@echo off
setlocal
set file="test.cmd"
set maxbytesize=1000

FOR /F "usebackq" %%A IN ('%file%') DO set size=%%~zA

if %size% LSS %maxbytesize% (
    echo.File is ^< %maxbytesize% bytes
) ELSE (
    echo.File is ^>= %maxbytesize% bytes
)

Problem

I want to have a batch file which checks what the `filesize` is of a file. If it is bigger than `%somany% kbytes,` it should redirect with GOTO to somewhere else. Example: ``` [check for filesize] IF %file% [filesize thing Bigger than] GOTO No echo Great! Your filesize is smaller than %somany% kbytes. pause exit :no echo Um... You have a big filesize. pause exit ```

Original source