Як зробити FTP кілька файлів з командного рядка?


25

Я хотів би FTP вміст каталогів, але я не можу знайти правильний спосіб використовувати підстановку. Здається, це було б звичайною справою; чи весь мій підхід неправильний?

Команда є

ftp -s:"C:\Scripts\ftp01" ftpserver.domain.com

Сценарій, який викликається, знаходиться нижче. Оновлено на мільярді.

username
password
ascii
cd "/destinationfolder"
lcd "C:\Backup"
mput *.bak
close
quit

Сценарій запускається, жодні файли не копіюються, і сеанс FTP залишається відкритим.

230 User username Logged in Successfully
ftp> ascii
200 TYPE Command OK A
ftp> cd "/destinationfolder"
250 Directory successfully changed to "/destinationfolder"
ftp> lcd "C:\Backup"
Local directory now C:\Backup.
ftp> mput *.bak
mput 9829980.bak? close
mput 6406766.bak? quit
ftp>
ftp>

Висновок

Мені потрібно було додати прапор, щоб придушити команду PROMPT:

ftp -i -s:"C:\Scripts\ftp01" ftpserver.domain.com

Відповіді:


36

Перш ніж видавати mputкоманду, видайте promptкоманду, щоб відключити інтерактивний режим. Після цього він не повинен просити вас підтверджувати кожен файл для mput(або an mget).


3
Для тих, хто цікавиться, "що таке синтаксис цієї promptкоманди", ви буквально просто набираєте "запит", і він перемикає підказки з істинного на хибне.
Номенон

2
Інший спосіб відключення інтерактивного спонукання - використовувати -iпрапор у самій ftpкоманді (наприклад ftp -i -s:"C:\Scripts\ftp01" ftpserver.domain.com). Документи описують -iпараметр як: "Вимикає інтерактивне запит під час декількох передач файлів."
Джессі Вебб

3

Я ніколи не намагався використовувати ім'я шляху для локальних папок, але я це зробив, змінивши локальний каталог ( lcd):

username
password
ascii
cd "/destinationfolder"
lcd Backup
mput *.bak
close
quit


1

За допомогою mputкоманди можна розмістити кілька файлів.


1
Так, саме цим я користуюся
mmcglynn

За брандмауером (зокрема SOHO або дешеві одиниці бізнес-класу)? Вбудований в ftpWindows не підтримує режим PASV, тому передача буде висіти і ніколи не завершиться.
Кріс С

1

Якщо у вас є права адміністратора, ви можете встановити ncftpput . Він простий у використанні та чудово підходить для рекурсивних завантажень FTP. Перемикач для рекурсивної передачі є -R.

Програмне забезпечення входить до більшості дистрибутивів Linux. Для Windows його можна встановити за допомогою Cygwin .


1

Як згадував Тім Хегеле, ncftp робить це дуже гладко в Linux, якщо ви можете та готові встановити його:

sudo apt-get install ncftp
ncftp -R ftpserver.domain.com . /Scripts/ftp01

0

Це сценарій, який я використовував і який працював на мене.

Для ftp1.bat (сценарій):

ftp -i -s:\tmp\ftp.txt

Для ftp.txt (сценарій):

Open ip
username
password
prompt
lcd C:\YourFolder\YourFolder
binary
cd /DestinationFolder
prompt
mput *.bak
cd ..
disconnect
quit

Можливо, є частини, які не потрібні, але я кажу, що це працювало для мене, сподіваюся, це допоможе

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.