如何从命令行检查文件的大小

时间:2011-05-12 16:07:32

标签: windows batch-file if-statement

我需要能够检查文件filesize,然后在批处理文件中执行if语句

e.g。如果文件< 20KB开始记事本,如果> 20KB启动wordpad

1 个答案:

答案 0 :(得分:2)

@echo off
SETLOCAL ENABLEEXTENSIONS
if exist "%~f1" (
    if %~z1 GEQ 20480 (
        start "" "%ProgramFiles%\Windows NT\Accessories\wordpad.exe" "%~f1"
    ) else (
        start notepad "%~f1"
    )
)

编辑:%~z语法仅适用于参数和FOR循环,对于硬编码名称,您可以使用辅助函数:

@echo off
SETLOCAL ENABLEEXTENSIONS
goto main

:getfilesize 
set %1=0
if exist "%~f2" set %1=%~z2
@goto :EOF

:main
set myfile=test.txt
call :getfilesize mysize "%myfile%"
if %mysize% GEQ 20480 (
    start "" "%ProgramFiles%\Windows NT\Accessories\wordpad.exe" "%myfile%"
) else (
    start notepad "%myfile%"
)