Если вы сделаете dir /?
, вы увидите, что переключатель /o
позволяет сортировать, среди прочих атрибутов, по размеру.Используйте переключатель /b
для чистого списка (содержит только имя файла) и запишите результат, используя for /F
.
. Для простоты вы можете отсортировать от наименьшего к наибольшему:
@echo off & setlocal
for /f "delims=" %%I in ('dir /b /o:s') do set "largest=%%~I"
Или от наибольшего к наименьшему для эффективности
@echo off & setlocal
set "largest="
for /f "delims=" %%I in ('dir /b /o:-s') do if not defined largest set "largest=%%~I"