找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 21732|回复: 3

[文件操作] 批处理怎样读一个配置文件,然后删除指定时间之前的文件?

[复制链接]
发表于 2012-8-28 18:21:05 | 显示全部楼层 |阅读模式
小弟想实现读一个配置文件(获取要删除文件的路径),然后删除指定时间之前的文件,请大侠们指点一下,感谢感谢!
发表于 2012-8-28 18:56:37 | 显示全部楼层
配置文件内容?
 楼主| 发表于 2012-8-29 09:50:57 | 显示全部楼层
谢谢版主,配置文件内容就是类似如下的路径,读取后符合7天之前的文件就删除
D:\admini_desk\*.txt
C:\Program Files\alipay\alieditplus\
C:\Documents and Settings\All Users\*.dat
D:\gis soft\*.txt
C:\Program Files\alipay\alieditplus\*
 楼主| 发表于 2012-8-29 12:52:03 | 显示全部楼层

  1. ::取7天之前的日期.
  2. >deldata.vbs echo wscript.echo dateadd("d",-7,date)
  3. for /f "tokens=1,2,3* delims=-" %%i in ('cscript /nologo deldata.vbs') do (
  4. set y=%%i
  5. set m=%%j
  6. set d=%%k
  7. )
  8. if %m% LSS 10 set m=0%m%
  9. if %d% LSS 10 set d=0%d%
  10. set rq=%y%-%m%-%d%
  11. echo 注意:即将删除 %rq% 以前建立的文件
  12. pause

  13. setlocal EnableDelayedExpansion
  14. ::读取配置文件里的路径及文件,内容里可能只有:路径+目录,或路径+目录+文件,文件中可能含有通配符*
  15. for /f "tokens=1* delims= " %%a in (config.ini) do (
  16. ::读取含有空格的路径放在path里
  17. set path=%%a %%b
  18. ::通过call进行传参
  19. call :y %%a %%b

  20. :y
  21. ::dir/tc 读取到的路径,skip前面非文件展示的内容,由于路径里可能含有多个空格,所以用%1 %2 %3 %4 %5
  22. ::来代替,用" "扩起来,使dir可以接受空格的命令
  23. for /f "skip=5 delims=" %%i in ('dir/tc "%1 %2 %3 %4 %5"') do (
  24.         set pa=%%i
  25.         ::将上面dir展示的内容通过!pa!放在in中,进行查找文件和日期 (不知道!pa!放在in中是否能这样实现)
  26.         for /f "tokens=1,4 delims= " %%x in ("!pa!") do (
  27.         ::x为获取到的dir命令后的日期
  28.         set str=%%x
  29.         ::y为获取到的dir命令后的文件
  30.         set sts=%%y
  31.                 if %str% lss %rq% (
  32.                         ::不知道下面可否实现:以上面获取到的文件名sts作为delims分割符进行路径和文件的分割,!path!为最外层for获取到的路

  33. 径及文件
  34.                         for /f "tokens=1,2 delims=!sts!" %%w in ("!path!") do (
  35.                         ::%%w为以sts分割后前面的内容(路径),%%w!sts!连着不知道可否实现路径和文件的整合,是将要删除的满足条件的文件
  36.                             set tail=%%w!sts!
  37.                             del /q %tail%            
  38.                         )       
  39.                    )
  40.         )
  41. )
  42. )

  43. pause  
复制代码
配置文件config.ini内容为:
D:\admini_desk\*.txt
C:\Program Files\alipay\alieditplus\
C:\Documents and Settings\All Users\*.dat
D:\gis soft\*.txt
C:\Program Files\alipay\alieditplus\*
以上是我写的代码,由于对bat操作接触不久,运行时总有错误,望各位达人帮助修改一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 14:23 , Processed in 0.014562 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表