Я хочу скопировать файл с FTP и вставить его в свою локальную систему. Я хочу запустить это через пакетный файл. Я пытаюсь сделать это уже неделю. Но я не смог найти решение. Кто-нибудь, помогите мне, пожалуйста...
Это моя настоящая работа.
Хотите скопировать файл с именем «Friday.bat» изфтп://172.16.3.132(с именем пользователя и паролем) Поэтому я использую следующую кодировку:
@echo off
@ftp -i -s:"%~f0"&GOTO:EOF
open 172.16.3.132
mmftp
((((pasword entered here)))))
binary
get Friday.bat
pause
Результат:
ftp> @echo off
ftp> @ftp -i -s:"%~f0"&GOTO:EOF
Invalid command.
ftp> open 172.16.3.132
Connected to 172.16.3.132.
220 Welcome to ABL FTP service.
User (172.16.3.132:(none)):
331 Please specify the password.
230 Login successful.
ftp> binary
200 Switching to Binary mode.
ftp> get Friday.bat
200 PORT command successful. Consider using PASV.
550 Failed to open file.
ftp> pause
Наконец, файл с именем Friday.bat копируется в мою локальную систему размером 0 байт, но он не открывается.
решение1
Убедитесь, что вы можете загрузить файл вручную с помощью вашего любимого бренда FTP-клиента. Если этоне делаетработает, проблема, похоже, на стороне сервера: FTP-сервер не может получить доступ к файлу по какой-то причине (разрешения?). Если этоделает, убедитесь, что процесс, выполняющий ваш пакетный файл, имеет разрешение на запись в текущем каталоге, или, что еще лучше, смените каталог перед загрузкой.
Профессионалы создадут временный каталог и обработают файл там (но обязательно заблокируют этот каталог и очистят его после этого).
решение2
FTP не нравится вторая строка... она нужна?
Ошибка 550выдается, если файл не существует или у вас нет правильных прав доступа к файлу. Убедитесь, что у вас есть глобальные права на чтение файла или что вы используете команду user
для входа с известным локальным пользователем на удаленной машине, у которого есть права доступа к файлу. Убедитесь, что эти условия верны.
Это должно решить вашу проблему.