@echo off set FTPSETTINGS=..\company\ftpsettings.cmd rem =================== rem CONFIGFILE CHECK rem =================== if NOT EXIST %FTPSETTINGS% ( echo. echo ERROR: %FTPSETTINGS% NOT FOUND echo. echo --- please create it as follows --- echo set FTP_SERVER=example.com echo set FTP_PATH=/path/to/directory echo set FTP_USER=myuser echo set FTP_PASS=mypass exit /b ) rem =================== rem COMMANDLINE CHECKS rem =================== IF %1.==. GOTO USAGE rem removing extension ... set LISTFILE=%~n1 rem adding extension again ... set LISTFILE=%LISTFILE%.csv IF NOT EXIST %LISTFILE% ( echo ERROR: %LISTFILE% not found! exit /b ) echo. echo loading settings ... call %FTPSETTINGS% echo ++++++++++++++++++ echo FTP_SERVER=%FTP_SERVER% echo FTP_PATH=%FTP_PATH% echo FTP_USER=%FTP_USER% echo FTP_PASS=xxxxxx echo ++++++++++++++++++ echo. echo using list [ %LISTFILE% ] ... rem ################################### rem MAIN loop ( DOWNLOAD from ftp ) ... rem ################################### FOR /F "tokens=1,2 delims=, " %%E in (%LISTFILE%) do ( IF NOT EXIST %%F ( rem get it with curl ... echo. echo getting: [ %%F ] curl -u %FTP_USER%:%FTP_PASS% -L ftp://%FTP_SERVER%/%FTP_PATH%/%%F --output %%F rem success ? if NOT EXIST %%F ( echo ERROR: couldn't get %%F! ) ELSE ( rem check size (it SHOULD NOT be 0!) FORFILES /M %%F /C "cmd /C if @fsize EQU 0 echo ERROR: file @relpath is zero size!" ) ) ELSE ( FORFILES /M %%F /C "cmd /C if @fsize NEQ 0 echo OK: file @relpath is [ @fsize ] bytes" ) ) rem ===== rem END rem ===== GOTO END :USAGE echo "usage: %0 " echo LISTFILE = basic, browser, optional or other echo. :END