Windows ftpでファイルをアップロードすること


dba helpを受信するにはwindowsでsql-server dbファイルをバックアップする必要があります.元はディレクトリにバックアップされていましたが、ftpを再度アップロードして二次バックアップする必要があります.1日に1回バックアップファイルを実行し、windowsのタスク計画を使用してbatスクリプトを呼び出すだけです.
現在version 1のスクリプトを書いて、指定したディレクトリを検索して、フォーマットは当日bakのファイルに接尾辞して、例xuyw_backup_2019_07_10_010003_5281025.bak
@echo off
set ftp_host= ftp 
set ftp_port= 
set ftp_user= 
set ftp_pwd= 
set file_path= 
set backup= 
set file_name=%file_path%*_%date:~0,4%_%date:~5,2%_%date:~8,2%*.bak
echo open %ftp_host% %ftp_port% >> temp.txt
echo user %ftp_user% %ftp_pwd% >> temp.txt
echo bin >> temp.txt
echo cd %backup%>> temp.txt
for %%i in (%file_name%) do (
echo %%i
echo put %%i >> temp.txt
)
echo bye >> temp.txt
ftp -n -s:"temp.txt"
del /q temp.txt
exit

一見、問題ないようですね.batを実行してもアップロードでき、butは2 gのファイルをアップロードしました.それほど完璧ではありません.アップロードファイルは成功しましたが、サイズは0です.これは明らかに
満足しないでしょう.関連資料を調べて、ftpアクティブモードパッシブモードとは何か、私は長い間パッシブモードを設定すると何かを探していました.何の役にも立たない.ネット上ではファイアウォールを消せばいいと言っていますが、確かにできます.しかし、安全要求は、必ず閉められない.仕方がないから、別の方法を考えるしかない.
ふとftpツールがアップロードできる以上、私はそうではないかと思った.ftpツールのコマンドを直接呼び出すことができますか?FlashFXP.exeというツールはコマンド方式でアップロードします
version 2
@echo off
set ftp_host=xx
set ftp_port=21
set ftp_user=xx
set ftp_pwd=xx
set file_path=f:\backup\
set backup=/backup/
set file_name=%file_path%*_%date:~0,4%_%date:~5,2%_%date:~8,2%*.bak
for %%i in (%file_name%) do (
flashfxp.exe -upload ftp://%ftp_user%:%ftp_pwd%@%ftp_host%:%ftp_port% -localpath=%%i -remotepath=%backup%
)
closeFlashFXP.bat
exit
#closeFlashFXP.bat
@echo off
taskkill /f /im flashfxp.exe
exit

完了しました.flashfxpプログラムを閉じて、パラメータを使って閉じることはできません.強制的にtaskkillを追加しました
Flashfxpパラメータの説明https://www.flashfxp.com/forum/flashfxp/frequently-asked-questions-faq-/14748-command-line-switches.html