web-dev-qa-db-ja.com

コマンドラインから複数のファイルをFTP転送する方法

ディレクトリの内容をFTPで送信したいのですが、ワイルドカードを使用する正しい方法が見つからないようです。これが一般的なことになるようです。私の全体的なアプローチは間違っていますか?

コマンドは

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

呼び出されるスクリプトは以下のとおりです。 billinkcごとに更新されます。

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>

まとめ

プロンプトコマンドを抑制するフラグを追加する必要があります。

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

mputコマンドを発行する前に、 Prompt コマンドを発行して対話モードを無効にしてください。それがオフになると、mput(またはmget)の各ファイルを確認するように求めてはいけません。

36

ローカルフォルダにパス名を使用したことは一度もありませんが、ローカルディレクトリ(lcd)を変更して使用しました。

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

mputコマンドを使用して複数のファイルを配置します。

2
Chris S

mput行の直前にPrompt n行を挿入してみてください

2
horatio

管理者権限がある場合は、 ncftpput をインストールできます。使いやすく、再帰的FTPアップロードに最適です。再帰転送用のスイッチは-Rです。

このソフトウェアは、ほとんどのLinuxディストリビューションに含まれています。 Windowsの場合は、 Cygwin でインストール可能です。

1
Tim Haegele

Tim Haegeleが述べたように、ncftpはLinux上でこれを非常にスムーズに行います。

Sudo apt-get install ncftp
ncftp -R ftpserver.domain.com . /Scripts/ftp01
0
Collin Anderson

これは私が使用したスクリプトであり、それは私にとって役に立ちました。

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

必要ではない部分があるかもしれませんが、それが私のために働いていたので、私はそれを入れている、それが役立つことを願っています

0
Adrian Chacon