Board logo

标题: [文件操作] 批处理怎么实现将30天前的文件夹备份后删除源? [打印本页]

作者: btssslp    时间: 2015-10-8 10:11     标题: 批处理怎么实现将30天前的文件夹备份后删除源?

服务器的C盘每天都会产生一个以日期为名的文件夹(例如:20150915),然后我想用批处理实现将三十天前的文件夹备份到E盘,并且删除掉C盘的原始文件。求,怎么写,大侠来帮我
作者: flyinnet9    时间: 2015-10-8 11:09

如果在c:\根下建的目录不要用,这个只判断30天之前的目录,乱删不要哭。。。如果文件存在某个目录下,例如c:\test\可以用

论坛有和多类似的代码判断具体的日期,如2014/09/30,可通过论坛搜索功能找到
  1. forfiles /p c:\test\ /d -30 /c "cmd /c if @isdir==TRUE xcopy @path e:\@file /i /e /y& rd @path /s /q"
复制代码

作者: btssslp    时间: 2015-10-8 11:23

回复 2# flyinnet9


    文件夹没有在根目录,是在C:\img 下,下面全都是20151008这样名字的文件夹
作者: flyinnet9    时间: 2015-10-8 11:29

那可以用,你可以先用下面的测试下,可以的话,删除代码中的echo
  1. forfiles /p c:\img\ /d -30 /c "cmd /c if @isdir==TRUE echo xcopy @path e:\@file /i /e /y& echo rd @path /s /q"
复制代码

作者: btssslp    时间: 2015-10-8 11:35

回复 4# flyinnet9


    不能用,我估计是日期没有格式化的事
作者: DAIC    时间: 2015-10-8 19:24

回复 5# btssslp


    forfiles命令是不需要日期格式化的。你用的什么系统?请把测试用例和测试结果发出来看看




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2