Вот пакетный скрипт, который перечислит все файлы, размер которых превышает заданный размер (в байтах) в данном каталоге и во всех его подкаталогах:
@echo off
setlocal enabledelayedexpansion
set "SEARCH_DIR=%~1"
set "FILE_SIZE=%~2"
echo "%FILE_SIZE%" | findstr "\"[0-9][0-9]*\"" > NUL
if errorlevel 1 (
echo Usage: %~nx0 directory file_size_in_bytes
echo Lists all files in given directory and its subdirectories larger than given size.
exit /b 1
)
if not exist "%SEARCH_DIR%" (
echo "%SEARCH_DIR%" does not exist.
exit /b 1
)
for /R "%SEARCH_DIR%" %%F in (*) do (
if exist "%%F" if %%~zF GEQ %FILE_SIZE% echo %%F
)
Сначала сценарий выполняет некоторые проверки ошибок, а затем рекурсивно повторяет все файлы в данном каталоге, печатая пути к файлам, размер которых больше или равен заданному размеру.
Например, чтобы вывести на диск D: все файлы размером более 10 МБ, запустите сценарий из командной строки следующим образом:
C:\>list_larger_than.bat D: 10000000