【FTP】批处理实现用FTP服务器上的文件更新本机文件
由于批处理很难判断ftp下载何时能够完成,建议分成两个bat来做:
?
先运行download.bat
?
@echo offrem 指定FTP用户名set ftpUser=USERNAMErem 指定FTP密码set ftpPass=PASSWORDrem 指定FTP服务器地址set ftpIP=192.168.0.2rem 指定待下载的文件位于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 byestart ftp -v -i -s:"%ftpFile%" %ftpIP%
?
ftp下载完成以后,再运行compare.bat
@echo off::演示:用FTP下载的文件去更新本机的文件。::如果演示结果无误,把copy前面的echo去掉,即可实现真正更新。rem 指定从FTP下载下来的文件存放到什么地方set LocalFolder=C:/testrem 指定待比较的本机文件存放到什么地方set CompareFolder=C:/datfor /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 nulfor /f "skip=5 delims=" %%a in ('dir "%LocalFolder%"^|findstr ":*[a-z]"') do ( >>"%temp%/DownList.txt" echo %%a)>"%temp%/CompareList.txt" type nulfor /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>nulfindstr /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?