您的位置:首页 > 编程语言 > PHP开发

【FTP】批处理实现用FTP服务器上的文件更新本机文件

2010-04-17 17:19 323 查看
由于批处理很难判断ftp下载何时能够完成,建议分成两个bat来做:

先运行download.bat

@echo off
rem 指定FTP用户名
set ftpUser=USERNAME
rem 指定FTP密码
set ftpPass=PASSWORD
rem 指定FTP服务器地址
set ftpIP=192.168.0.2
rem 指定待下载的文件位于FTP服务器的哪个目录
set ftpFolder=/SharedFile/Log/
rem 指定从FTP下载下来的文件存放到本机哪个目录
set LocalFolder=C:/temp/

set ftpFile=%temp%/TempFTP.txt
>"%ftpFile%" echo,%ftpUser%
>>"%ftpFile%" echo,%ftpPass%
>>"%ftpFile%" echo cd "%ftpFolder%"
>>"%ftpFile%" echo lcd "%LocalFolder%"
>>"%ftpFile%" echo bin
>>"%ftpFile%" echo mget *.*
>>"%ftpFile%" echo bye
start ftp -v -i -s:"%ftpFile%" %ftpIP%


ftp下载完成以后,再运行compare.bat

@echo off
::演示:用FTP下载的文件去更新本机的文件。
::如果演示结果无误,把copy前面的echo去掉,即可实现真正更新。

rem 指定从FTP下载下来的文件存放到什么地方
set LocalFolder=C:/test
rem 指定待比较的本机文件存放到什么地方
set CompareFolder=C:/dat

for /f "skip=4 delims= " %%a in ('reg query "HKEY_CURRENT_USER/Control Panel/International" /v sTimeFormat') do (
set "RegTimeOld=%%a"
)
set RegTimeOld=%RegTimeOld:~-8%
reg add "HKEY_CURRENT_USER/Control Panel/International" /v sTimeFormat /t REG_SZ /d H:mm:ss /f>nul
>"%temp%/DownList.txt" type nul
for /f "skip=5 delims=" %%a in ('dir "%LocalFolder%"^|findstr ":*[a-z]"') do (
>>"%temp%/DownList.txt" echo %%a
)
>"%temp%/CompareList.txt" type nul
for /f "skip=5 delims=" %%a in ('dir "%CompareFolder%"^|findstr ":*[a-z]"') do (
>>"%temp%/CompareList.txt" echo %%a
)
reg add "HKEY_CURRENT_USER/Control Panel/International" /v sTimeFormat /t REG_SZ /d %RegTimeOld% /f>nul
findstr /x /v /g:"%temp%/CompareList.txt" "%temp%/DownList.txt">"%temp%/CopyList.txt"
for /f "usebackq tokens=4 delims= " %%a in ("%temp%/CopyList.txt") do (
echo copy /y "%LocalFolder%/%%a" "%CompareFolder%"
)
pause
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: