Загрузка файлов на FTP-сервер с помощью встроенного FTP-клиента Windows
Вы можете загружать файлы по FTP только с помощью встроенных утилит Windows. Просто создайте сценарий CMD с кодом ниже и поместите ярлык в папку sendto (Win+R → shell:sendto) для быстрого доступа к контекстному меню.
Будет также работать запрос функции "сопоставленная папка". Пользователи Filezilla знают эту возможность как синхронизированный просмотр.
@echo off
set inputfolder="%~dp1"
set mappedfolder=%inputfolder:C:\MAPPEDFOLDER1\MAPPEDFOLDER2\=%
set mappedfolder=%mappedfolder:"=%
set ftp=%temp%\script.ftp
>> %ftp% ECHO open 123.4.567.89
>> %ftp% ECHO user FTPUSER FTPPASSWORD
>> %ftp% ECHO cd "%mappedfolder%"
>> %ftp% ECHO binary
>> %ftp% ECHO send %1
>> %ftp% ECHO disconnect
>> %ftp% ECHO quit
ftp.exe -n -i -s:%ftp%
del %ftp%
pause
exit
Введите свои учетные данные FTP
- Замените
FTPUSER
, FTPPASSWORD
и IP-адрес собственными данными для входа на FTP
- Измените
C:\MAPPEDFOLDER1\MAPPEDFOLDER2\
на сопоставленную папку на локальном ПК.
Примечание. Если вы загрузите файл из-за пределов вашей сопоставленной папки, файл будет сохранен в корневой папке FTP по умолчанию.
Как работает скрипт (Пример файла C:\some\folder\input.txt
)
- В качестве входной папки сохраняется только путь из выбранного файла:
C:\some\folder\
- Третья строка сравнивает входной путь и ваш жестко закодированный путь (например,
C:\some\
). В результате вы получаете folder\
как сопоставленную папку. Позже скрипт пытается открыть эту папку в корневом каталоге FTP
- В строке 5-12 создается временный текстовый файл (script.ftp) с помощью нескольких команд echo.
Все ваши команды FTP записаны в этот текстовый файл.
- Встроенный FTP-клиент Windows вызывается с помощью
ftp.exe -n -i -s:%ftp%
и получает командный файл FTP в качестве параметра. Так что он знает, что делать:
- Сначала программа FTP открывает соединение с вашим сервером вместе с вашими учетными данными
cd "%mappedfolder%"
используется для синхронизации вашего входного пути и структуры пути FTP. К счастью, он может открыть несколько папок одним вызовом.
binary
- просто настройка по умолчанию для метода передачи файлов
send %1
наконец отправляет наш файл. Пакетный аргумент %1
представляет входное полное имя файла
- После завершения передачи мы отключаемся от FTP-сервера и закрываем FTP-клиент.
- Последние 3 строки предназначены только для очистки наших следов, например, для удаления командного файла FTP, а
pause
даст вам возможность увидеть вывод сценария, если все прошло нормально.
Использованные ресурсы