病毒安全知识,电脑网络技术,手工杀毒方法,答疑解决笔记

导航

« Word无法打开文件,因为内容有误TortoiseSVN修改svn地址、账号密码 »

批处理保留当天最新文件

  因定时使用FTP同步文件到本地服务器指定文件夹,因为文件太多,而且后一个文件往往包含了前面文件的内容,所以每天只要保留最后的一个文件,即时间最新的文件,如何用批处理实现?可以使用for命令,如下:

for /f "skip=1 tokens=* delims=" %%i in ('dir /b/o-d *.txt') do @del "%%i"

for /f是用来解析后面dir命令输出的结果,skip=1跳过命令输出结果中的第1行,也就是我要保留的时间最新的一个文件,tokens=*表示删除行首的空格,如果tokens=数字,就是取数字所表示的列数,列数由delims=所指出的分隔符划分,这里delims=后没有分隔符,就是取全行。

dir命令的参数/b表示使用空格式,没有摘要信息,直接按后面的参数列出文件列表,/o-d中/o是按顺序列出文件,d是按文件时间从先到后排列,中间加个-,表示逆转顺序,加在一起就是将文件按时间从后到先(即时间最新的排在前面),注意此命令用单引号括起来,另外后面的文件名,象上面这样用*.txt,将是把所有txt文件按时间顺序逆序排列,只会保留最新时间的一个文件,如果文件名中含有日期,可以用类似%date:~0,4%%date:~5,2%%date:~8,2%*.txt,只取当天日期下最新的文件,前提是文件名中含有日期,如201908191413.txt。

do是for的循环体,因为只有一行命令,就不用加括号了,如果有多行命令,就要加括号。

del前的@表示不显示当前命令,如果前面使用了@echo off,就用不着@了,连for都隐藏了。注意,如果不使用@echo off,而在for前加@,del前不加@,那么只隐藏for这一行命令,后面的del命令还是会显示。

更多的解释,自行去网上找批处理中的for与skip、tokens、delims,这里就不多说了。


>> 除非说明均为原创,如转载请注明来源于http://www.stormcn.cn/post/2115.html

发表评论(无须注册,所有评论在审核通过后显示):

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

  • 微信订阅号
    微信订阅

最新发表

最新评论及回复

本站出现的所有广告均不代表本人及本站观点立场 | 关于我 | 网站地图 | 联系邮箱 | 返回顶部
Copyright 2008-2020 www.stormcn.cn. All Rights Reserved. Powered By Z-Blog.

闽公网安备 35010202000133号