В принципе и стандартный виндовый ftp.exe позволяет создавать папки на сервере и заливать в них файлы...
rc_to_ftp.cmd
@echo off
chcp 1251
REM должен быть задан параметр - имя копируемой папки с полным путём без слэша на конце в кавычках "
if "%~1%" EQU "" exit
set FTPSERVER=somthere.in.the.net
set FTPUSER=USER
set FTPPASSWORD=password
set "FTPFOLDER=/path at/ftp server"
1>"%~dp0ftpscript.tmp" (
echo open %FTPSERVER%
echo %FTPUSER%
echo %FTPPASSWORD%
echo binary
echo literal pasv
)
call :FLDCPY "%~dpnx1" "/%~nx1"
1>>"%~dp0ftpscript.tmp" echo by
ftp /s:"%~dp0ftpscript.tmp"
del %~dp0ftpscript.tmp
goto :EOF
:FLDCPY
1>>"%~dp0ftpscript.tmp" (
echo mkdir "%FTPFOLDER%%~2"
echo cd "%FTPFOLDER%%~2"
echo lcd "%~dpnx1"
)
for /f "delims=" %%A in ('dir /B /A:-D %1') do 1>>"%~dp0ftpscript.tmp" (
echo put "%%~nxA"
)
for /f "delims=" %%B in ('dir /B /A:D %1') do call :FLDCPY "%~1\%%~nxB" "%~2/%%~nxB"
goto :EOF
Этот батник принимает в качестве параметра имя папки и рекурсивно копирует её на ftp вместе со всем содержимым...