数据每天压缩后自动上传FTP的实现方法Word下载.docx
《数据每天压缩后自动上传FTP的实现方法Word下载.docx》由会员分享,可在线阅读,更多相关《数据每天压缩后自动上传FTP的实现方法Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
for/d%%fin(E:
\CPDatalog\Analog\2015\*)doxcopy/Y/D:
%date:
~5,10%-%date:
~2,2%%%f\*.st*F:
\ToFVServer\Analog//复制文件
//进入F盘
CDToFVServer\Analog//切换到ToFVServer\Analog目录
for/f%%iin('
dir/b*.*'
)do(if%%~zilss102400(del/f/q"
%%i"
))//删除<
100K的文件
D:
//进入D盘
CDSoftware\FlashFXP//切换到Software\FlashFXP目录
flashfxp-uploadftp:
//diodes:
Mxme+09@@-localpath="
\ToFVServer\Analog\"
-remotepath="
/SKE_CP/"
–quit//上传完自动退出
CD\
CDToFVServer\Analog
mkdirF:
\ToFVServer\Analog_%Date%//新建Analog_%Date%,存放已上传数据
move*.*F:
\ToFVServer\Analog_%Date%//移动文件
2)复制*.jdf,并自动上传到FloorVision
说明:
SKEData在2015这个目录下
\CPDatalog\Discrete\2015\*,E:
\CPDatalog\Discrete\2015\SKEData\*)doxcopy/Y/D:
~2,2%%%f\Data\*.jdfF:
\ToFVServer\Discrete//复制文件
CDToFVServer\Discrete//切换到ToFVServer\Discrete目录
)do(if%%~zilss5120(del/f/q"
5K的文件
\ToFVServer\Discrete\"
CDToFVServer\Discrete
\ToFVServer\Discrete_%Date%//新建Discrete_%Date%,存放已上传数据
\ToFVServer\Discrete_%Date%//移动文件
5、任务计划程序,创建一个每天23:
55分运行的任务,选中上述第4步建立的批处理文件作为执行文件。
数据就可以每天自动上传了。
Analog和Discrete同时上传的脚本:
不压缩&
删除小于一定大小的数据不完整文件
在F盘建一个文件夹:
\ToFVServer\rawdata
CDToFVServer\rawdata
))
CDSoftware\FlashFXP
\ToFVServer\rawdata\"
–quit
\ToFVServer\rawdata_%Date%
补充说明:
同一个语句中,单独运行和批处理运行,变量略有差异,即%和%%。
单独运行:
for/d%fin(E:
~2,2%%f\*.st*F:
批处理运行:
数据上传方式的改进:
Apr8,2015
1、延迟1天或任意天上传
2、数据压缩方式:
(1)多个文件一起压缩到1个包内
(2)单个文件压缩
先前脚本总结:
优点:
用FlashFXP上传,只要外网是通的,不会出现上传失败的情况。
注意要设重新连接和上传次数为9999,防止可能的断网,FlashFXP会自动重连。
缺点:
因为使用SecondCopy软件,每隔1小时,2小时或4小时,抓数据,导致原设定的每天23:
55自动执行,可能出现当天的部分数据遗漏的情况(即恰逢SecondCopy最后一次没有执行)。
所以我增加了很多代码,改成了延迟一天上传:
即4月8日只上传4月7日这天的数据,4月7日只上传4月6日这天的数据,以此类推。
代码修改部分:
(1)用数据方法计算减1天的正确日期:
可以修改代码设定延迟任意一天。
(2)用forfiles命令(Win7,WindowsServer2003及以上包含这个命令)自动删除当天的文件。
比如4月8日上传的时候,删除4月8日的文件,防止重复上传。
(可以修改代码删除任意天之前或之后的文件)
(3)计划任务可设定在任意时间点运行:
但为了确保数据的完整性,目前我设定在5:
00am之后运行,这样可确保前一天数据的完整性。
Rem//延迟1天,并且TUGzip把多个文件压缩到1个包内,Analog和Discrete分开压缩//
@echooff
remGetdesignatedpreviousdate.DaysAgo=1meansgetthedate1daybefore.
setDaysAgo=1
remsystemdateformatshouldbeyyyy-mm-dd
call:
DateToDays%date:
~0,4%%date:
~5,2%%date:
~8,2%PassDays
set/aPassDays-=%DaysAgo%
DaysToDate%PassDays%DstYearDstMonthDstDay
setCPYDate=%DstMonth%-%DstDay%-%DstYear%
echo%CPYDate%
remBeginofDiscreteCopyFilesandCompress
%CPYDate%%%f\Data\*.jdfF:
del/f/qSP*.jdf
for/f"
delims="
%%iin('
)do(if%%~zilss10240(del/f/q"
forfiles/PF:
\ToFVServer\Discrete/M*.*/D%Date%/C"
cmd/cdel/F/Q@file"
CDSoftware\TUGZip
TzScript-v4DiscreteToFV.tzs
\ToFVServer\Backup\Discrete_%Date%
remEndofDiscreteCopyFilesandCompress
remBeginofAnalogCopyFilesandCompress.UploadingBothDiscreteandAnalogCompressedFile.
%CPYDate%%%f\*.logF:
%CPYDate%%%f\*.st*F:
\ToFVServer\Analog/M*.*/D%Date%/C"
TzScript-v4AnalogToFV.tzs
flashfxp-uploadft