[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
老大,http://bbs.bathome.net/thread-3334-1-1.html上方案一,里面删除的文件是目录中日期满足条件全部的文件,如果我只是要限制删除满足日期条件的某个类型的文件,要怎么改呢?比如就删除.bak,其它格式的不动,谢谢啦

把*.*改成*.bak
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

东西真好,好好学习了

TOP

回复 34楼 的帖子

既然你已经另开了一个帖子,我们就到那个帖子里面去讨论吧^_^
http://bbs.bathome.net/thread-5648-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

麻烦 版主有时间帮忙看看 好吗?

TOP

代码更新 在楼下

[ 本帖最后由 kingwu 于 2009-8-19 18:59 编辑 ]

TOP

回复 31楼 的帖子

这个只是字符串的截取而已,yyyy-mm-dd字符串长度为十,偏移量从零开始计算。
%date:~0,4%类似于其它语言中的函数substring(),意思是从第零位开始截取,共截取4位,这样就把年的值取到了。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

感谢版主的回复
根据系统日期格式为yyyy-mm-dd来获取  这个我明白
我说的是%date:~0,4% %date:~5,2% %date:~8,2%

其中的:~0,4% ~5,2% ~8,2%  这个数据是根据什么换算的  
因为我是日期换分钟  理论上应该是yyyy-mm-dd-hh-mm 要不我不知道含义没法换算后面的

TOP

回复 29楼 的帖子

根据系统日期格式为yyyy-mm-dd来获取
有可能
不会
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

先谢过了



call ateToDays %date:~0,4% %date:~5,2% %date:~8,2% PassDays

:DateToDays %yy% %mm% %dd% days
setlocal ENABLEEXTENSIONS
set yy=%1&set mm=%2&set dd=%3
if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
endlocal&set %4=%j%&goto :EOF

%date:~0,4% %date:~5,2% %date:~8,2%  它是根据什么结论获取来的,另reg里面的内容格式是否会有变动?(小时制,目前只能用分钟替代小时)  另如果分钟的时间太长 会不会出现时间差呢?

[ 本帖最后由 kingwu 于 2009-8-12 22:51 编辑 ]

TOP

回复 27楼 的帖子

小时的计算跟天数的计算非常类似,可以参照方案二的思路,调用 Ritchie Lawrence 批处理函数库中的代码:
http://bbs.bathome.net/thread-3056-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

请教下LZ,能不能按小时来删除呢
在线等,谢谢先了

TOP

回复 25楼 的帖子

dir命令的结果如何呢?

C:\Test>dir
驱动器 C 中的卷没有标签。
卷的序列号是 9033-65A2

C:\Test 的目录

2009-07-06  21:13    <DIR>          .
2009-07-06  21:13    <DIR>          ..
2009-07-06  21:21                11 test.bat
2009-07-06  21:03                 0 新建 文本文档.tx.jpg
2009-07-06  21:03                 0 新建 文本文档.txt.jpg
               3 个文件             11 字节
               2 个目录 15,391,432,704 可用字节


把sShortDate改成yyyy-M-d再试试?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

截图如下两图片

TOP

回复 22楼 的帖子

能否把以下注册表分支导出来,传到论坛上来看看:
HKEY_CURRENT_USER\Control Panel\International\
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

运行显示如下,制定三天前的,但是今天的文件也提示将被删除


E:\>rem 指定待删除文件的存放路径

E:\>set SrcDir=e:\crm

E:\>rem 指定天数

E:\>set DaysAgo=3

E:\>rem 假设日期格式为:星期一 2009-07-13

E:\>call ateToDays 2009 07 13 PassDays

E:\>setlocal ENABLEEXTENSIONS

E:\>set yy=2009  & set mm=07  & set dd=13

E:\>if 12009 LSS 200 if 12009 LSS 170 (set yy=202009 )  else (set yy=192009 )

E:\>set /a dd=10013%100,mm=10007%100

E:\>set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2

E:\>set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633

E:\>endlocal & set PassDays=14438  & goto :EOF

E:\>set /a PassDays-=3

E:\>call :DaysToDate 14435 DstYear DstMonth DstDay

E:\>setlocal ENABLEEXTENSIONS

E:\>set /a a=14435+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a

E:\>set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5

E:\>set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10

E:\>(if 7 LSS 10 set mm=07 )  & (if 10 LSS 10 set dd=010 )

E:\>endlocal & set DstYear=2009  & set DstMonth=07  & set DstDay=10  & goto :EOF


E:\>set DstDate=2009-07-10

E:\>for /R "e:\crm" %a in (*.*) do (if "%~ta" LEQ "2009-07-10" (if exist "%a" (e
cho del /f /q "%a" ) ) )

E:\>(if "08-10-30 08:21 " LEQ "2009-07-10" (if exist "e:\crm\20081030082017hjfor
est@技术规范确认书及项目明细.xls" (echo del /f /q "e:\crm\20081030082017hjforest
@技术规范确认书及项目明细.xls" ) ) )
del /f /q "e:\crm\20081030082017hjforest@技术规范确认书及项目明细.xls"

E:\>(if "08-10-30 08:27 " LEQ "2009-07-10" (if exist "e:\crm\20081030082615hjfor
est@华俊和集团车型对照表.xls" (echo del /f /q "e:\crm\20081030082615hjforest@华
俊和集团车型对照表.xls" ) ) )
del /f /q "e:\crm\20081030082615hjforest@华俊和集团车型对照表.xls"

E:\>(if "08-10-30 08:41 " LEQ "2009-07-10" (if exist "e:\crm\20081030083809hjlll
@营销服务部各岗位人员信息表.doc" (echo del /f /q "e:\crm\20081030083809hjlll@营
销服务部各岗位人员信息表.doc" ) ) )
del /f /q "e:\crm\20081030083809hjlll@营销服务部各岗位人员信息表.doc"

E:\>(if "09-07-12 04:04 " LEQ "2009-07-10" (if exist "e:\crm\mycrm50200907120400
00.bak" (echo del /f /q "e:\crm\mycrm5020090712040000.bak" ) ) )
del /f /q "e:\crm\mycrm5020090712040000.bak"

E:\>(if "09-07-13 04:04 " LEQ "2009-07-10" (if exist "e:\crm\mycrm50200907130400
00.bak" (echo del /f /q "e:\crm\mycrm5020090713040000.bak" ) ) )
del /f /q "e:\crm\mycrm5020090713040000.bak"

E:\>(if "09-07-11 14:46 " LEQ "2009-07-10" (if exist "e:\crm\新建 WPS演示 演示文
稿.dps" (echo del /f /q "e:\crm\新建 WPS演示 演示文稿.dps" ) ) )
del /f /q "e:\crm\新建 WPS演示 演示文稿.dps"

E:\>pause
请按任意键继续 . . .

TOP

返回列表