ftp服务器用于保存备份文件,公司服务器用来备
- 编辑:澳门博发娱乐官网 -ftp服务器用于保存备份文件,公司服务器用来备
介绍
forfiles是windows自带的三个批量删减命令,对于时间的论断是通过文件本人的改革日期属性进行判别,使用它来对历史文件实行推断删除是个不利的取舍。
供销合作社会服务务器用来备份数据的硬盘过段时间就能够被备份文件占满,弄得本人老是要登陆到服务器去手工业删除那三个老的公文,有的时候忘记了就能够以致硬盘空间不足而马尘不及备份。
因为大器晚成旦保留这段时间几天的备份,假使得以做叁个批管理让系统自动删除老备份文件就好了,不过Windows的命令行和Linux的Shell比起来成效差了成都百货上千,到底行还是不行作者要好也不理解。
于是上网查了生龙活虎晃各位大虾发的帖子,再经过自个儿的追寻和尝试,开采只要花点武术仍是可以够落到实处这些效率的。
Windows Server 2000放权的命令行文件,符合于XP以上系统
示例:
ftp服务器用于保存备份文件,然则也无需每一日的多寡都留着,于是乎为了思索节省硬盘空间,就非得删除一些老文件,只要保存近期一周或许四个月的就足以了
windows自带了二个批量删减的次第,叫做forfiles,XP里常常未有,博文最上边附属类小零器件能够下载
首先说一下本人的使用吧,ftp服务器端每日备份数据文件后,只想保留近日两周的文本
编写一个bat文件,内容如下
写道
@echo off
rem write to log
set filename=deletefile.log
echo -------------------Delete Expired Log
Files------------------------- >>%filename%
echo Start >>%filename%
echo (%date% %time%) >>%filename%
echo Delete the expired log files in 目的目录路线1, Please wait...
>>%filename%
forfiles.exe /p "D:Kugou" /m *.tar /d -14 /c "cmd /c del @path"
echo End >>%filename%
echo (%date% %time%) >>%filename%
腼腆,脚本是抄外人的,来自
驷不及舌命令就这一条了:forfiles.exe /p "D:Kugou" /m *.tar /d -14 /c "cmd
/c del @path"
那条命令的意思就是,找出D:/Kugou目录下的自由后缀名叫tar的公文,查看其日期属性是不是为14天以前的(-14代表在此以前,+14代表未来卡塔尔,然后执行删除命令
后生可畏初始平昔在纠葛那日子格式是怎么弄的,是不是forfiles是由此相称文件名来删除的,结果直接在改文件名的日子显示格式,后来才发觉偶智力商数如此低下,人家forfiles是windows自带的,尼玛明显能够智能的合作文件日期属性啊。
所以说,只要这几个文件的日期属性是14天在此以前的,就能够被上述脚本删除。
接下来在抬高任务布署。。。
上边帖一下forfiles的参数用法,来自
Forfiles
从文件夹或树中接收要开展批管理的文本。
语法
forfiles [/p Path ] [/m SearchMask ] [/s ] [/c Command ] [/d
[{+ | - }] [{MM / DD / YYYY | DD }]]
参数
/p Path
钦赐Path
,表明要从哪个地方开端探究。暗中认可的公文夹是当前职业目录,该目录通过键入句号(.)
钦点。
/m SearchMask
遵照SearchMask 找出文件。暗中同意的SearchMask 是*.* 。
/s
指令forfiles 在子目录中追寻。
/c Command
在各类文件上运维钦点的Command
。带有空格的指令字符串必须用引号括起来。暗许的Command 是"cmd /c echo
@file" 。
/d [{+ | - }] [{MM / DD / YYYY | DD }]
选择日期大于或等于(+ )(恐怕小于或等于(- )卡塔尔国钦定日期的文书,此中MM / DD
/ YYYY 是点名的日期,DD 是当下日子减去DD 天。假设未钦点+ 或- ,则动用+
。DD 的有用节制是0 - 32768。
/?
在命令提示符下展现扶植。
注释
• Forfiles 最常用于批管理公事中。
• Forfiles /s 与dir /s 类似。
• 下表列出了可在/c Command 命令字符串中利用的变量。
变量 描述
@file
文件名
@fname
无扩充名的文书名
@ext
文件扩大名
@path
文件的完全路线
@relpath
文件的相对路线
@isdir
假诺文件类型是目录,则总计值为TRUE,不然值为FALSE
@fsize
用字节表示的文件大小
@fdate
文件中上次修正的日期戳
@ftime
文件中上次改进的小时戳
• 使用forfiles
,能够在八个文件上运营命令或将参数字传送递给多个文本。举例,能够在树中含有*.txt
扩张名的全体文件上运行TYPE
命令。大概,能够用文件名“Myinput.txt”作为第二个参数,在C:/
驱动器上实行各类批管理公事(*.bat)。
• 通过行使forfiles ,能够实践下列任何操作:
• 使用/d 遵照相对或相对日期选取文件。
•
使用诸如@fsize(文件大小卡塔尔国和@fdate(文件日期卡塔 尔(阿拉伯语:قطر那样的变量创设文件的存档树。
• 使用@isdir 变量区分文件和目录。
• 通过在指令行中包涵特殊字符和平运动用十二进制代码0x HH
环绕字符来格式化输出内容。
• Forfiles
通过在目的在于仅管理单个文件的工具上实践“循环子目录”标志来发挥成效。
示例
要列出驱动器C: 上的有着批管理公事,请键入:
forfiles /p c:/ /s /m*.bat /c"cmd /c echo @file is a batch file"
要列出驱动器C: 上的具有目录,请键入:
forfiles /p c:/ /s /m*.* /c"cmd /c if @isdir==true echo @file is a
directory"
要列出驱动器C: 上设一时间多于100 天的享有文件,请键入:
forfiles /p c:/ /s /m*.* /dt-100 /c"cmd /c echo @file :date >= 100
days"
要列出驱动器C: 上一九九二 年1 月1 日早先创造的有着文件,并且对于日期早于一九九一年1 月1 日的文本展现“file is quite old!”,请键入:
forfiles /p c:/ /s /m*.* /dt-01011993 /c"cmd /c echo @file is quite
old!"
要按列格式列出驱动器C: 上全部文件的增加名,请键入:
forfiles /p c:/ /s /m*.* /c "cmd /c echo extension of @file is
[email protected]"
With:
要列出驱动器C: 上的具有批管理文件,请键入:
forfiles /p c:/ /s /m *.bat /c "cmd /c echo @file is a batch file"
要列出驱动器C: 上的有着目录,请键入:
forfiles /p c:/ /s /m *.* /c "cmd /c if @isdir==true echo @file is a
directory"
要列出驱动器C: 上存在时间多于100 天的保有文件,请键入:
forfiles /p c:/ /s /m *.* /d t-100 /c "cmd /c echo @file :date >=
100 days"
要列出驱动器C: 上一九九五 年1 月1 日从前创制的具有文件,何况对于日期早于1992年1 月1 日的公文突显“file is quite old!”,请键入:
forfiles /p c:/ /s /m *.* /d t-01011993 /c "cmd /c echo @file is quite
old!"
要按列格式列出驱动器C: 上存有文件的扩大名,请键入:
forfiles /p c:/ /s /m*.* /c "cmd /c echo extension of @file is
[email protected]"
语法
forfiles [/p Path ] [/m SearchMask ] [/s ] [/c Command ] [/d [{+ | - }] [{MM / DD / YYYY | DD }]]
[/p Path ]:指定路径,当然目录可以用“.”
[/m SearchMask ]:搜索方式,默认是*.*
[/s ]:遍历子目录进行搜索,包括当前目录
[/d [{+ | - }] [{MM / DD / YYYY | DD }]]:选择日期大于或等于(+ )(或者小于或等于(- ))指定日期的文件,默认+
其中MM / DD / YYYY 是指定的日期,DD 是当前日期减去DD 天,默认是DD 。DD 的有效范围是0 - 32768
例如:
/d -15:查找15天之前的文件
/d 2016/12/9:指定查找的文件日期为2016/12/9
[/c Command ]:指定要执行的命令,格式为[ /c "cmd /c rd /s/q @path" ];双引号里面的/c后接需要执行的命令。
变量:
@file
显示文件名
@fname
显示无扩展名的文件名
@ext
显示文件扩展名
@path
显示文件的完整路径
@relpath
文件的相对路径
@isdir
如果文件类型是目录,则计算值为TRUE,否则值为FALSE
@fsize
显示用字节表示的文件大小
@fdate
显示文件中上次修改的日期戳
@ftime
显示文件中上次修改的时间戳
forfiles /m *.bkf /d -28 /c "cmd /c del @file /f"
附属类小零器件下载
示例
1.查看“d:backupdata”目录下名称饱含“--”,且修改时间大于15天的文书大概文件夹
forfiles.exe /p d:backupdata /m *-*-* /d -15 /c "cmd /c echo @path"
2.剔除,/s/q(/s文件夹下存在文件也删除,/q强制删除不提示)
forfiles.exe /p d:backupdata /m *-*-* /d -15 /c "cmd /c rd /s/q @path"
备考:路径不帮衬"\url"这种分享路线,rd(删除文件夹),del(删除文件)
剔除当前目录下28天从前的恢宏名称叫bkf文件(以当下系统时间为规范卡塔 尔(阿拉伯语:قطر
forfiles 自动删除7天前文件 delete二零零六-09-12 15:01
用forfiles.exe试试。
总结
备注: 作者:pursuer.chen 博客:http://www.cnblogs.com/chenmh 本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。 《欢迎交流讨论》 |
forfiles /p "d:test" /s /m *.* /d -7 /c "cmd /c del @path"
...
做成批管理文件,bat文件与forfiles.exe同一目录下,建三个bat文件的赶快方式在起步。
d:test换到你要的目录路径。日期是指改良的日期。
附上forfiles.exe及帮助。
去除全体的空目录(以删除d:test目录下为例)
本文由胜博发-操作发布,转载请注明来源:ftp服务器用于保存备份文件,公司服务器用来备