ftp文件上传脚本(windows)

ftp文件上传脚本(windows)

部分电脑不支持ftp命令上传文件,整理ftp上传相关批处理脚本如下:
脚本描述
1、支持2种上传模式:ftp,curl,如果用户电脑不支持ftp命令上传,需要设置为curl模式;
2、脚本启动后,遍历上传文件列表,每上传一个文件,记录传输日志(成功、失败),供问题排查;
3、文件上传前,需要设置相关参数
4、VBS脚本用于执行dos命令时,不显示黑色窗口

注意事项
1、文件名及目录不支持空格;
2、如果使用curl模式,需要解压文件curl-7.56.1-win64-mingw.zip到当前目录下

目录结构:

C:\ftp_up\
curl-7.56.1-win64-mingw  -- curl解压目录
ftp_proxy.bat
ftp_upload.bat
ftp_upload.VBS
upload_by_curl.bat
upload_by_ftp.bat

ftp_upload.bat

@echo off 
title ftp上传文件

rem -------------------------------------------------------
rem ftp文件上传
rem 1、支持2种上传模式:ftp,curl,如果用户电脑不支持ftp命令上传,需要设置为curl模式;
rem 2、脚本启动后,遍历上传文件列表,每上传一个文件,记录传输日志(成功、失败),供问题排查;
rem 3、文件上传前,需要设置相关参数
rem 
rem 注意事项
rem 1、文件名及目录不支持空格;
rem 2、如果使用curl模式,需要解压文件curl-7.56.1-win64-mingw.zip到当前目录下
rem -------------------------------------------------------
rem 上传参数设置

rem 上传模式:ftp,curl
set trans_mode=curl
rem 日志文件
set log_file=upload.log
rem 数据文件目录
set work_path=%cd%

rem ftp参数
set ftp_ip=192.168.0.1
set ftp_port=28
set ftp_user=user_name
set ftp_pwd=user_pwd
set ftp_dir=base_dir/tmp
set file_ext=*.txt
rem -------------------------------------------------------

REM for /R %work_path% %%s in (*.wav) do (
for /R %work_path% %%s in (%file_ext%) do (
    rem 显示文件名称
    echo %date% %time% uploading %%s>>%log_file%
    rem 当前窗口调用执行命令
    call ftp_proxy.bat %%s
)

ftp_proxy.bat

@echo off

set file_full_path=%1
if "%trans_mode%"=="ftp" goto use_ftp

:use_curl
call upload_by_curl.bat
goto :check_upload

:use_ftp
call upload_by_ftp.bat

:check_upload
IF ERRORLEVEL 1 goto err_upload
echo %date% %time% upload file to ftp ok!>>%log_file%

:clear_wav
rem 清理临时数据文件
del %file_full_path%

IF ERRORLEVEL 1 goto err_del_wav
echo %date% %time% clear file ok!>>%log_file%
goto :eof

:err_upload
echo %date% %time% upload file to ftp error!>>%log_file%
exit

:err_del_wav
echo %date% %time% clear file error!>>%log_file%
exit

upload_by_curl.bat

set path=%path%;%cd%\curl-7.56.1-win64-mingw\bin
curl -T "%file_full_path%" ftp://%ftp_user%:%ftp_pwd%@%ftp_ip%:%ftp_port%/%ftp_dir%/

upload_by_ftp.bat

rem ftp自动上传
rem 操作步骤:1、生成ftp上传命令文件;2、执行ftp上传;3、临时文件清理;

rem 打开ftp连接
echo open %ftp_ip% %ftp_port% >ftp.up

rem 输入用户名
echo %ftp_user%>>ftp.up

rem 输入密码
echo %ftp_pwd%>>ftp.up

rem 切换到远程目录
echo cd %ftp_dir%>>ftp.up

rem 启用二进制模式
echo binary>>ftp.up

rem 禁用交互模式
echo prompt>>ftp.up

rem 上传指定文件
echo put "%file_full_path%">>ftp.up

rem 退出登录
echo bye>>ftp.up

rem 执行ftp上传
FTP -s:ftp.up

rem 清理本地临时文件
del ftp.up /q

ftp_upload.VBS

createobject("wscript.shell").run "C:\ftp_up\ftp_upload.bat",0

猜你喜欢

转载自blog.csdn.net/huryer/article/details/80594808