ディレクトリの内容を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
mput
コマンドを発行する前に、 Prompt
コマンドを発行して対話モードを無効にしてください。それがオフになると、mput
(またはmget
)の各ファイルを確認するように求めてはいけません。
ローカルフォルダにパス名を使用したことは一度もありませんが、ローカルディレクトリ(lcd
)を変更して使用しました。
username
password
ascii
cd "/destinationfolder"
lcd Backup
mput *.bak
close
quit
mput
コマンドを使用して複数のファイルを配置します。
mput
行の直前にPrompt n
行を挿入してみてください
Tim Haegeleが述べたように、ncftpはLinux上でこれを非常にスムーズに行います。
Sudo apt-get install ncftp
ncftp -R ftpserver.domain.com . /Scripts/ftp01
これは私が使用したスクリプトであり、それは私にとって役に立ちました。
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
必要ではない部分があるかもしれませんが、それが私のために働いていたので、私はそれを入れている、それが役立つことを願っています