1

Тема: CMD/BAT: Копирование самого свежего файла на ftp

Здравствуйте.

Стоит задача ежедневно копировать на ftp первый попавшийся файл с текущей датой создания из папки "Исходная" (если файлов с текущей датой два и более, то копируем любой из них).
Подскажите пожалуйста есть ли готовые решения? (искал не нашёл)

Или может быть есть примеры скриптов, из которых можно слепить требуемое..

2

Re: CMD/BAT: Копирование самого свежего файла на ftp

Доброго.

Western пишет:

первый попавшийся файл с текущей датой создания из папки "Исходная" (если файлов с текущей датой два и более, то копируем любой из них).

forfiles /P "Исходная" /d "%date%" /c "cmd.exe /c echo @path"

Вместо cmd.exe /c echo @path будет загрузчик файлов на FTP.

Western пишет:

копировать на ftp

SET FTP_SERVER=ftp.example.com
SET FTP_LOGIN=anonymous
SET FTP_PASS=anonymous@example.com
SET FTP_CMD_FILE=ftp_cmd_file

ECHO.open %FTP_SERVER%>%FTP_CMD_FILE%
ECHO.%FTP_LOGIN%>>%FTP_CMD_FILE%
ECHO.%FTP_PASS%>>%FTP_CMD_FILE%
ECHO.verbose>>%FTP_CMD_FILE%
ECHO.binary>>%FTP_CMD_FILE%
ECHO.put %1>>%FTP_CMD_FILE%
ECHO.quit>>%FTP_CMD_FILE%

FTP.EXE -s:"%FTP_CMD_FILE%"
del %FTP_CMD_FILE%

Сохраняем второй листинг как ftpup.cmd (не забываем указать свой сервер, пользователя и пароль) и вызываем из первого:

forfiles /P "Исходная" /d "%date%" /c "cmd.exe /c C:\путь_до_\ftpup.cmd @path"

Ну и подробнее в справке по forfiles и ftp.
Возможно, ftpup.cmd откажется загружать файлы не из текущей рабочей директории, тогда замените "ECHO.put %1>>%FTP_CMD_FILE%" на:

ECHO.lcd %~dp1>>%FTP_CMD_FILE%
ECHO.put %~nx1>>%FTP_CMD_FILE%