H:\ > for /?
...
Операции подстановки ссылок на переменные команды FOR
также расширены. Допускается применение следующих
синтаксических конструкций:
%~I - из переменной %I удаляются обрамляющие кавычки (")
%~fI - переменная %I расширяется до полного имени файла
%~dI - из переменной %I выделяется только имя диска
%~pI - из переменной %I выделяется только путь к файлу
%~nI - из переменной %I выделяется только имя файла
%~xI - из переменной %I выделяется расширение имени файла
%~sI - полученный путь содержит только короткие имена
%~aI - переменная %I расширяется до атрибутов файла
%~tI - переменная %I расширяется до даты /времени файла
%~zI - переменная %I расширяется до размера файла
%~$ПУТЬ:I - проводится поиск по каталогам, заданным в
переменной среды ПУТЬ, и переменная %I
заменяется на полное имя первого найденного
файла. Если переменная ПУТЬ не определена или
в результате поиска не найден ни один файл,
то этот модификатор заменяется на пустую
строку.
...
Для сравнения больше или меньше.
H:\ > if /?
...
Изменение команды IF при включении расширенной обработки команд:
IF [/i] строка1 оператор_сравнения строка2 команда
IF CMDEXTVERSION число команда
IF DEFINED переменная команда
где оператор_сравнения принимает следующие значения:
EQL - равно
NEQ - не равно
LSS - меньше
LEQ - меньше или равно
GTR - больше
GEQ - больше или равно,
...
Что-то вроде:
setlocal ENABLEEXTENSIONS
for /f %%a in ('dir /b /s /a-d "путь_где_лежат_файлы\*.xml"') do (
if %%~za GTR 5000000 (
echo %%~fa
rem для перемещения файлов измените строку выше.
)
)
Решение медленное (!) т.к. будет перебирать свойства каждого файла и, в соответствии с условием, совершать действия над файлом.