немного лирики:
Вопрос сложный - разные FTP сервера немного по-разному выдают список файлов, в добавок там излишние преобразования в зависимости от даты файла отностительно текущей... лично я в похожей задаче отказался пользовать команду
LS для сравнения файлов и сделал примитивно - для каждого успешно выгруженного файла (ftp.exe завершился без ошибок) создавал в отдельном каталоге одноименный файлик с датой выгрузки. При следующем сеансе проверял все файлы в папке и выгружал только те, что не были найдены в т.н. логе.
В дальнейшем хотел упростить проверку за счет использования лог-файла (вместо создания файликов с датами), но руки "не дошли", ибо пока работает древний скриптик, что-либо мутить было лень.
Код:

@Echo Off
set home=%CD%
rem Turn ON Variable extensions
set log=.
for %%f in (.) do set log=!log!%%f
if %log%==.. goto L00
if "%1"=="Take2" (
echo Err: Variable extensions not supported!
goto Exit
)
%COMSPEC% /E:ON /V:ON /C %0 Take2
goto Exit
:L00
set src=B:\
set wrk=%CD%\SyncList
set msk=*.TIB
set log="%CD%\Sync.log"
set ftc="%CD%\Sync.ftp"
net use b: \\192.168.0.8\BackUp
if not exist "%wrk%" md "%wrk%" >Nul
cd "%src%"
%src:~0,2%
rem Search File to transfer
:L01
set tm=%time::=-%
set tm=%date:~6,4%-%date:~3,2%-%date:~0,2% %tm:~0,-3%
del /f %ftc%>Nul
set fn=.
for %%f in (%msk%) do if not exist "%wrk%\%%f" if "!fn!"=="." set fn=%%f
if "%fn%"=="." Goto Exit
echo.
echo.
echo =====================
echo %tm% %fn%
echo =====================
echo open xxx.xxx 21>%ftc%
echo login>>%ftc%
echo pass>>%ftc%
echo binary>>%ftc%
echo cd KV>>%ftc%
echo put %fn%>>%ftc%
echo bye>>%ftc%
echo.>>%log%
echo ===v.20090514===================>>%log%
echo %tm% %fn%>>%log%
"%home%\ftps" -resume -quiterror -s:%ftc% >%TEMP%\FTP.LOG
set ErrN=N%ErrorLevel%
set tm=%time::=-%
set tm=%date:~6,4%-%date:~3,2%-%date:~0,2% %tm:~0,-3%
rem echo %ErrN%
rem echo %fn%
rem pause
if "%ErrN%"=="N0" (
Echo %tm% Done>>%log%
Echo Done at %tm%>>"%wrk%\%fn%"
) else (
Echo %tm% Error %ErrN%>>%log%
type %TEMP%\FTP.LOG >>%log%
)
echo ================================>>%log%
echo.>>%log%
Goto L01
:Exit
cd "%home%"
%home:~0,2%
if exist B:\ net use b: /d /y