XCOPY只拷贝当天文件的实现代码

所属分类: 脚本专栏 / DOS/BAT 阅读数: 316
收藏 0 赞 0 分享
最近由于MESIS数据库自动站资料的事,需要从CMACAST广播目录L1下将本省的区域自动站数据文件拷贝出来用于入库。在实际操作中碰到几个问题,特此做备忘录,以便以后查找。

问题1:MICDB指定的源目录只要有文件就处理,进库程序本省很耗资源,用PC机处理要讲究效率,最好每次只放入最新文件,以减少重复处理的情况。

问题2:CMACAST广播目录L1文件太多,3天有49万多个文件,光打开目录就要读N分钟,国家局信息中心技术人员都是吃粪的。本来用SceondCopy进行拷贝功能很强大,可以实现只拷贝最新文件,但是对这个目录文件数太多,最后实现不了。(NewZFile从SJK拷贝可以用SecondCopy)

为解决以上2个问题,利用XCOPY先将L1目录的本省自动站文件拷贝出来的,放在D:\AWS\ZFILE里(计划任务实现),再用SCONDCOPY将D:\AWS\ZFILE里的最新文件拷到D:\Program Files\Micdb\tempdata\zfile里供MICDB进库时读取。

XCOPY使用了 /D:mm-dd-yyyy参数,即只拷贝指定日期之后的文件,那当天日期如何生成的呢,使用了%date% 取得系统日期,如果是一般的中文XP系统,日期格式是YYYY-MM-DD,所以就用截取字符串的方式重造了美国日期格式。如:%date:~0,4% 表示截取从第0位开始截取长度4个字符从而得到YYYY(年),如:%date:~5,5% 表示截取从第5位开始截取长度5个字符从而得到MM-DD(月-日)

为了方便用户与自己浏览脚本之家特将内容整理了下,方便大家学习

dos中获取系统时间的命令

复制代码 代码如下:

echo %date%


输出:



读取系统日期后截取其中的4位年变量(中国日期格式 年-月-日)
set nian=%date:~0,4$
测试
复制代码 代码如下:

echo %date:~0,4%


输出:



读取系统日期后截取其中的2位月变量
set yue=%date:~5,2%

测试:

复制代码 代码如下:

echo %date:~5,2%

输出:

读取系统日期后截取其中的2位日变量

set ri=%date:~8,2%

测试:

复制代码 代码如下:

echo %date:~8,2%


 输出:

重塑美国日期变量格式 “月-日-年”,只选择拷贝当前日期的文件

复制代码 代码如下:

xcopy \\172.22.68.4\sjk\zp\*.* e:\test /d:%yue%-%ri%-%nian%

更多精彩内容其他人还在看

for 语句从入门到精通

在批处理中,for是最为强大的命令语句,它的出现,使得解析文本内容、遍历文件路径、数值递增/递减等操作成为可能
收藏 0 赞 0 分享

dos 目录跳转 cd

当我们需要处理不同路径下的文件的时候,很可能需要切换目录,这个时候,可以考虑使用目录跳转命令cd。
收藏 0 赞 0 分享

tree 以树形格式罗列文件

tree ,在英语中的基本含义是“树”,在cmd中,tree命令的功能是以树形格式罗列文件。
收藏 0 赞 0 分享

dos 内容重定向

当我们在cmd窗口中查询某条命令的帮助信息的时候,帮助信息是显示在命令行窗口中的,命令行窗口关闭后,这些帮助信息就看不到了,如果下次还想看,又得在命令行窗口中输入查询命令,比较繁琐。
收藏 0 赞 0 分享

执行批处理bat程序中的条件处理

一直用bat实现部分功能,对于我们仍需要控制是否满意我们的要求,下面是if帮助文档,方便查询
收藏 0 赞 0 分享

不错的批处理脚本 第一部分

非常不错的批处理脚本代码,功能比较多,用到了,很多的批处理机器
收藏 0 赞 0 分享

不错的批处理脚本实例代码 第二部分

不错的批处脚本实例代码,用到了批处理中的很多技巧与知识点,不懂得可以逐一查找相关资料
收藏 0 赞 0 分享

开机更新桌面主题的批处理代码

更新桌面主题的批处理代码
收藏 0 赞 0 分享

非常好的for 教程, 当时我就是看这个学习for 的第1/2页

批处理for命令详解 FOR这条命令基本上都被用来处理文本,但还有其他一些好用的功能! 看看他的基本格式(这里我引用的是批处理中的格式,直接在命令行只需要一个%号)
收藏 0 赞 0 分享

批处理的"循环"效果脚本

曾经在回答一个问题时 无意中想到的方法 今天又看到类似的问题 个人认为是非常实用的 于是 想把这种方法推荐给大家
收藏 0 赞 0 分享
查看更多