FTP — встроенный FTP-клиент командной строки Windows

FTP в CMD позволяет подключаться к FTP-серверам, скачивать и загружать файлы без сторонних программ. Полный список команд, синтаксис и готовые примеры.

Команда FTP запускает встроенный интерактивный FTP-клиент Windows, который позволяет подключаться к FTP-серверам и управлять файлами без установки сторонних программ. Основные сценарии применения — загрузка файлов на сервер хостинга, скачивание дистрибутивов с FTP-зеркал и автоматизированная передача файлов через BAT-скрипты.

Синтаксис команды FTP

FTP [-v] [-d] [-i] [-n] [-g] [-s:имя_файла] [-a] [-A] [-x:размер] [-r:размер] [-b:размер] [-w:буфер] [хост]

Параметры запуска:

  • хост — имя или IP-адрес FTP-сервера (можно указать при запуске или подключиться командой open внутри сессии)
  • -s:имя_файла — выполнить команды из текстового файла вместо интерактивного ввода (скриптовый режим)
  • -n — не выполнять автоматический вход (auto-login) при подключении
  • -i — отключить интерактивные подтверждения при пакетной передаче файлов
  • -v — подавить вывод ответов сервера
  • -A — использовать анонимный вход

Ключи и параметры

После подключения к серверу вводятся команды FTP-сессии:

Команда Описание Пример
open Подключиться к FTP-серверу open ftp.example.com
user Авторизоваться под другим пользователем user mylogin
ls / dir Список файлов на удалённом сервере dir
cd Перейти в каталог на сервере cd /public/uploads
lcd Перейти в локальный каталог lcd C:\Downloads
get Скачать один файл с сервера get report.pdf C:\report.pdf
mget Скачать несколько файлов по маске mget *.csv
put Загрузить один файл на сервер put C:\backup.zip /backups/backup.zip
mput Загрузить несколько файлов по маске mput *.jpg
delete Удалить файл на сервере delete /old/file.txt
rename Переименовать файл на сервере rename file.txt file_old.txt
mkdir Создать каталог на сервере mkdir /uploads/2024
binary Переключиться в бинарный режим передачи binary
ascii Переключиться в текстовый режим передачи ascii
bye / quit Завершить сессию и выйти из FTP bye

Примеры использования

Подключение к FTP-серверу

Открыть интерактивную сессию с FTP-сервером по IP-адресу или доменному имени.

ftp ftp.example.com

После запуска FTP-клиент запросит имя пользователя (User) и пароль (Password). После успешного входа появится приглашение ftp> для ввода команд.

Скачивание файла с сервера

Загрузить конкретный файл из текущего каталога сервера в локальную папку.

binary
get /releases/app_v2.zip C:\Downloads\app_v2.zip

Перед загрузкой архивов и исполняемых файлов всегда переключайтесь в бинарный режим командой binary, иначе файл будет повреждён.

Загрузка файла на сервер

Отправить локальный файл в указанный каталог на FTP-сервере.

binary
put C:\Backups\db_backup.sql /backups/db_backup.sql

Убедитесь, что у вашего пользователя есть права на запись в целевой каталог сервера.

Автоматизация через скрипт-файл

Выполнить последовательность FTP-команд без интерактивного ввода — удобно для задач по расписанию.

Создайте файл C:\ftp_script.txt со следующим содержимым:

open ftp.example.com
mylogin
mypassword
binary
cd /uploads
put C:\data\report.csv report.csv
bye

Запустите скрипт:

ftp -s:C:\ftp_script.txt

FTP выполнит все команды из файла последовательно и завершит работу. Это позволяет добавить передачу файлов в Планировщик задач.

Скачивание нескольких файлов по маске

Загрузить все CSV-файлы из текущего каталога сервера.

prompt off
mget *.csv

Команда prompt off отключает подтверждение для каждого файла. Файлы будут сохранены в текущий локальный каталог.

Просмотр содержимого каталога и навигация

Убедиться в структуре каталогов сервера перед передачей файлов.

dir
cd /public/files
dir

dir показывает файлы с правами и размерами. Для компактного списка без деталей используйте ls.

Частые ошибки и решения

Ошибка / ситуация Причина Решение
Connection refused или не удаётся подключиться Сервер недоступен, неверный адрес или порт 21 заблокирован брандмауэром Проверьте адрес сервера. Уточните, используется ли нестандартный порт: open ftp.example.com 2121
Файл скачан, но открыть не получается (архив повреждён) Файл передан в ASCII-режиме вместо бинарного Перед загрузкой введите команду binary. Для текстовых файлов используйте ascii
Access denied при загрузке файла Недостаточно прав на запись в целевой каталог сервера Проверьте права пользователя на сервере или перейдите в каталог, где есть права записи
FTP зависает при соединении (passive mode) Сервер ожидает пассивный режим, а клиент работает в активном Встроенный FTP Windows работает в активном режиме. Используйте альтернативный клиент с поддержкой PASV (WinSCP, FileZilla) или настройте исключение в брандмауэре
Пароль с символами @ или # не работает в скрипт-файле Специальные символы воспринимаются как разделители Смените пароль на сервере или используйте клиент с поддержкой экранирования спецсимволов

Когда применять, а когда нет

Встроенный FTP-клиент Windows подходит для разовых задач и простой автоматизации через скрипт-файлы с ключом -s. Ограничения: нет поддержки FTPS и SFTP (зашифрованных протоколов), работает только в активном режиме (проблемы с NAT и брандмауэрами), не поддерживает возобновление прерванной загрузки. Для регулярного использования рекомендуется WinSCP или FileZilla. В PowerShell можно использовать класс [System.Net.FtpWebRequest] или модуль WinSCP для автоматизации с поддержкой SFTP.

FAQ

Поддерживает ли встроенный FTP в Windows шифрование (FTPS, SFTP)?

Нет. Встроенный FTP-клиент Windows поддерживает только незашифрованный FTP. Для FTPS и SFTP используйте WinSCP, FileZilla или PowerShell с соответствующими модулями.

Как передать файл по FTP без ввода пароля вручную?

Создайте скрипт-файл с командами (включая логин и пароль) и запустите: ftp -s:script.txt. Имейте в виду, что пароль хранится в файле открытым текстом — ограничьте доступ к этому файлу.

Почему mget скачивает файлы в неожиданный каталог?

Файлы сохраняются в текущий локальный каталог на момент выполнения команды. Перед mget смените локальный каталог командой lcd C:\нужная\папка.

Как подключиться к FTP-серверу на нестандартном порту?

Используйте команду open с указанием порта: open ftp.example.com 2121. При запуске из командной строки нестандартный порт через пробел после адреса: ftp ftp.example.com 2121.

Чем отличаются команды get и mget?

get скачивает один конкретный файл и позволяет указать локальное имя при сохранении. mget скачивает несколько файлов по маске (например *.pdf), сохраняя их под исходными именами.

Оцените статью
( Пока оценок нет )
MW10
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.