orgia, я не вчитывался в Ваш код, я не читатель, а писатель

но как вариант моего решения для Вашей постановки
Код:

@echo off
Set TmpFtp=D:\Tmp
Set TmpArc=D:\TmpArc
Set TmpErr=D:\TmpErr
Set TmpIn=D:\TmpIn
Set Mask1=I%Date:~0,2%05805.???
Set Mask2=L01???????????.0??
Set Mask3=5005805?????????????????.dat
Set Mask=5005805000%Date:~0,2%???.ED
Move /Y "%TmpFtp%\%Mask%" "%TmpIn%\" >nul
CD /D "%TmpFtp%"
SetLocal EnableExtensions EnableDelayedExpansion
FOR %%f IN ("%Mask1%" "%Mask2%" "%Mask3%") DO (
fc /B "%%f" "%TmpArc%\%%~nxf" >nul
If !ErrorLevel!==0 (
Move /Y "%%f" "%TmpIn%\" >nul
) Else (
Move /Y "%%f" "%TmpErr%\" >nul
)
)
Мне гораздо легче (и интереснее - главный побудительный мотив отвечать на вопросы) получить чёткое описание проблемы и предложить решение. Постигать логику постановки задачи по приведенному коду долго, и это не по мне