比如:删除E:\DiffZipRUL下2天前变更过的所有文件
能在windows server 2008下能运行
(坐等)50分,满意再送50
比如:E:\DiffZipRUL目录下有A、B、C文件或文件夹,B昨天修改过,A,C2天类没有修改过,执行Bat后会删除A、C,B不会被删除,因为2天内修改过
非bat也行,比如C#小外挂程序也可以~
运行结果:
运算符不存在。
无效数字。数字常数只能是十进制(17),十六位进制(0x11)或
八进制(021)。
请按任意键继续. . .
这样,昨天是在WIN7下调试的,因为WIN7的时间显示用斜杠分隔,而2008可能是用减号分隔的,所以会出现运算符不存在,刚才在2003下测试了一下(实在是没有2008的环境),把两处delims=/ "替换成delims=- ",运行通过。虽然没用过2008这样的高级货,我觉得还是可以再尝试一下。
另外,第三条for命令:for /f "tokens=1-3,6 ...这一句中的,6没有用到,可以去除改成for /f "tokens=1-3 ...。
另外,for /f "tokens=1 delims=" %%a in ('dir /s/b/a-d-h "E:\DiffZipRUL"') do (这一句里排除了目录和隐藏文件,如果需要的话,请把dir搜索参数改成dir /s/b/a,然后删除目录用rd "!fname!" /s/q,而且删除目录可能要执行两次(如目录中有子目录的话),但是目录修改时间不会随着目录下文件的修改而改变,所以不建议用这样的方式删除目录。
看了下那个附件,用forfiles确实是简单有效的办法,只要一条命令就完事了,
forfiles /p 路径 /m 文件通配规则 /s /d 与当前日期差值(前两天就是-2) /c 执行的动作
~~~~~
运行结论:
找不到文件
请按任意键继续. . .
时间格式应该是调试对了
forfile我自己也用过……貌似2008不得行
我自己写来个~搞定~ 还是感谢!
不是太明天你的意思,这有个以前写的,你参考下。
看了下,可以查到文件,正确的。。。我的意思是:E:\DiffZipRUL这个目录下有各种文件,我想删除这个目录下2天前的所有文件及文件夹,按照修改时间来计算时间,不是按照创建时间来计算时间(2天前)