[DOS] ftp批量上传,下载文件 windows_linux_mput_mget.bat
2009-08-21 10:25
856 查看
@echo off
::Configuration Section
set "GET_FTP_SERVER=192.168.2.18"
set "GET_FTP_PORT=21"
set "GET_FTP_USERNAME=oracle"
set "GET_FTP_PASSWORD=oracle"
set "GET_DIR=/opt/oracle/mmsprtdata/send"
set "PUT_FTP_SERVER=10.199.39.215"
set "PUT_FTP_PORT=21"
set "PUT_FTP_USERNAME=mmsg"
set "PUT_FTP_PASSWORD=mmsg0723"
set "PUT_DIR=/upsendmsg"
set "LOCAL_DIR=C:/MMSIGRPT"
set "BAK_DIR=/opt/oracle/xmlbak"
call :downloaddir "%GET_DIR%" "%LOCAL_DIR%"
call :uploaddir "%LOCAL_DIR%" "%PUT_DIR%"
goto :eof
:downloaddir - download directory tree
:: - %~1 remote directory
:: - %~2 local directory
setlocal
set "remotedir=%~1"
set "localdir=%~2"
echo "%GET_FTP_SERVER%>%remotedir%" ----^> "%localdir%"
call :get_autoftp cmdftp_downloaddir "%remotedir%" "%localdir%" >nul
for /D %%I in ("%remotedir%/*") do (
call :downloaddir "%remotedir%/%%~nxI" "%localdir%/%%~nxI"
)
endlocal
goto :eof
:uploaddir - upload directory tree
:: - %~1 local directory
:: - %~2 remote directory
setlocal
set "localdir=%~1"
set "remotedir=%~2"
echo "%localdir%" ----^> "%PUT_FTP_SERVER%>%remotedir%"
call :put_autoftp cmdftp_uploaddir "%localdir%" "%remotedir%" >nul
for /D %%I in ("%localdir%/*") do (
call :uploaddir "%localdir%/%%~nxI" "%remotedir%/%%~nxI"
)
cd "%localdir%"
erase /Q *.xml
endlocal
goto :eof
:cmdftp_uploaddir - ftp commands for upload directory tree
:: - %~1 local directory
:: - %~2 remote directory
echo lcd "%~1"
echo cd "%~2"
echo binary
echo prompt
echo mput *.xml
goto :eof
:cmdftp_downloaddir - ftp commands for download directory tree
:: - %~1 remote directory
:: - %~2 local directory
echo cd "%~1"
echo lcd "%~2"
echo binary
echo prompt
echo mget *.xml
goto :eof
:put_autoftp - a complete ftp session
:: - %* ftp command generator label and its arguments
setlocal
set "putftpin=_ftpin_"
(call :put_preftp & call :%* & call :postftp) >>"%putftpin%"
ftp -n <"%putftpin%"
del /Q "%putftpin%"
endlocal
goto :eof
:get_autoftp - a complete ftp session
:: - %* ftp command generator label and its arguments
setlocal
set "getftpin=_ftpin_"
(call :get_preftp & call :%* & call :postftp) >>"%getftpin%"
ftp -n <"%getftpin%"
del /Q "%getftpin%"
endlocal
goto :eof
:get_preftp - setup the ftp session
echo open %GET_FTP_SERVER% %GET_FTP_PORT%
echo user %GET_FTP_USERNAME% %GET_FTP_PASSWORD%
goto :eof
:put_preftp - setup the ftp session
echo open %PUT_FTP_SERVER% %PUT_FTP_PORT%
echo user %PUT_FTP_USERNAME% %PUT_FTP_PASSWORD%
goto :eof
:postftp - teardown the ftp session
echo quit
goto :eof
:echolines - echo special range lines
:: - %~1 target file
:: - %~2 begin line number
:: - %~3 end line number
setlocal
set "file=%~1"
set /A begin=%~2
set /A end=%~3
set "options=tokens=1* delims=:"
set /A skip=%begin%-1
if %skip% GTR 0 set "options=skip=%skip% %options%"
for /F "%options%" %%I in ('findstr /N .* "%file%"') do (
echo %%J
if %%I GEQ %end% goto :endfor
)
:endfor
endlocal
goto :eof
::Configuration Section
set "GET_FTP_SERVER=192.168.2.18"
set "GET_FTP_PORT=21"
set "GET_FTP_USERNAME=oracle"
set "GET_FTP_PASSWORD=oracle"
set "GET_DIR=/opt/oracle/mmsprtdata/send"
set "PUT_FTP_SERVER=10.199.39.215"
set "PUT_FTP_PORT=21"
set "PUT_FTP_USERNAME=mmsg"
set "PUT_FTP_PASSWORD=mmsg0723"
set "PUT_DIR=/upsendmsg"
set "LOCAL_DIR=C:/MMSIGRPT"
set "BAK_DIR=/opt/oracle/xmlbak"
call :downloaddir "%GET_DIR%" "%LOCAL_DIR%"
call :uploaddir "%LOCAL_DIR%" "%PUT_DIR%"
goto :eof
:downloaddir - download directory tree
:: - %~1 remote directory
:: - %~2 local directory
setlocal
set "remotedir=%~1"
set "localdir=%~2"
echo "%GET_FTP_SERVER%>%remotedir%" ----^> "%localdir%"
call :get_autoftp cmdftp_downloaddir "%remotedir%" "%localdir%" >nul
for /D %%I in ("%remotedir%/*") do (
call :downloaddir "%remotedir%/%%~nxI" "%localdir%/%%~nxI"
)
endlocal
goto :eof
:uploaddir - upload directory tree
:: - %~1 local directory
:: - %~2 remote directory
setlocal
set "localdir=%~1"
set "remotedir=%~2"
echo "%localdir%" ----^> "%PUT_FTP_SERVER%>%remotedir%"
call :put_autoftp cmdftp_uploaddir "%localdir%" "%remotedir%" >nul
for /D %%I in ("%localdir%/*") do (
call :uploaddir "%localdir%/%%~nxI" "%remotedir%/%%~nxI"
)
cd "%localdir%"
erase /Q *.xml
endlocal
goto :eof
:cmdftp_uploaddir - ftp commands for upload directory tree
:: - %~1 local directory
:: - %~2 remote directory
echo lcd "%~1"
echo cd "%~2"
echo binary
echo prompt
echo mput *.xml
goto :eof
:cmdftp_downloaddir - ftp commands for download directory tree
:: - %~1 remote directory
:: - %~2 local directory
echo cd "%~1"
echo lcd "%~2"
echo binary
echo prompt
echo mget *.xml
goto :eof
:put_autoftp - a complete ftp session
:: - %* ftp command generator label and its arguments
setlocal
set "putftpin=_ftpin_"
(call :put_preftp & call :%* & call :postftp) >>"%putftpin%"
ftp -n <"%putftpin%"
del /Q "%putftpin%"
endlocal
goto :eof
:get_autoftp - a complete ftp session
:: - %* ftp command generator label and its arguments
setlocal
set "getftpin=_ftpin_"
(call :get_preftp & call :%* & call :postftp) >>"%getftpin%"
ftp -n <"%getftpin%"
del /Q "%getftpin%"
endlocal
goto :eof
:get_preftp - setup the ftp session
echo open %GET_FTP_SERVER% %GET_FTP_PORT%
echo user %GET_FTP_USERNAME% %GET_FTP_PASSWORD%
goto :eof
:put_preftp - setup the ftp session
echo open %PUT_FTP_SERVER% %PUT_FTP_PORT%
echo user %PUT_FTP_USERNAME% %PUT_FTP_PASSWORD%
goto :eof
:postftp - teardown the ftp session
echo quit
goto :eof
:echolines - echo special range lines
:: - %~1 target file
:: - %~2 begin line number
:: - %~3 end line number
setlocal
set "file=%~1"
set /A begin=%~2
set /A end=%~3
set "options=tokens=1* delims=:"
set /A skip=%begin%-1
if %skip% GTR 0 set "options=skip=%skip% %options%"
for /F "%options%" %%I in ('findstr /N .* "%file%"') do (
echo %%J
if %%I GEQ %end% goto :endfor
)
:endfor
endlocal
goto :eof
相关文章推荐
- linux和windows之间上传 下载文件 非ftp方式
- linux ftp批量上传和下载文件
- Windows通过FTP上传、下载文件到Linux
- windows下dos命令上传文件-非ftp(linux)
- window服务器通过sftp从linux下载文件,并ftp上传到window服务器
- Linux_ftp_命令行下下载文件get与上传文件put的命令应用
- Linux 终端访问 FTP 及 上传下载 文件
- linux下实现ftp匿名用户的上传和下载文件功能
- Windows下通过bat脚本实现自动上传文件到ftp服务器
- Linux 终端访问 FTP 及 上传下载 文件
- windows下dos命令上传文件-非ftp(windows)
- Linux FTP自动登陆下载备份,上传文件脚本
- linux 登陆ftp及文件上传及下载 【转】
- xshell上传下载文件(Windows、Linux)
- Samba,SSH只能下载文件到windows不能上传到linux
- windows bat ftp多文件上传
- Linux 终端访问 FTP 及 上传下载 文件
- Linux_ftp_命令行下下载文件get与上传文件put的命令应用
- XSHELL工具上传文件到Linux以及下载文件到本地(Windows)
- Linux 终端访问 FTP 及 上传下载 文件