[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理如何删除文件名中的日期小于/等于/大于指定日期的文件

本帖最后由 pcl_test 于 2016-7-16 14:34 编辑

我想删除d:\aa\下,小于20131231的所有文件,文件名格式:成都yyyymmdd.xls。请问老师代码怎么写?
如果文件名是:成都【yyyymmdd】.xls
1

评分人数

    • pcl_test: 不要每次回帖都加标题PB -30

  1. @echo off&&setlocal EnableDelayedExpansion
  2. cd /d d:\aa\
  3. mkdir tmp
  4. for /f %%i in ('dir /a:-d /b') do (
  5. set filename=%%i
  6. set year=!filename:~0,4!
  7. if "!year!" leq "2013" move %%i tmp/>nul
  8. )
  9. cd tmp
  10. move 20131231.xls ..\>nul
  11. del /q *
  12. cd ..
  13. rmdir tmp
  14. pause
复制代码
希望这段代码能够帮助你

TOP

[待完善] 请教老师,bat按指定日期删除文件写法

本帖最后由 7016427 于 2015-5-17 12:28 编辑

[待完善]回复 2# dizimotong
你好!执行时提示,系统找不到文件,实际已删除满足条件的文件了!

TOP

本帖最后由 7016427 于 2015-5-17 12:53 编辑

[执行截图]回复 3# 7016427

TOP

你好,我大概知道怎么回事了,我想你应该没有20131231.xls这个文件导致的。
建议将
  1. move 20131231.xls ..\>nul
复制代码
删掉或者改成
  1. move 20131231.xls ..\>nul 2>&1
复制代码
应该就能解决你说的问题了

TOP

RE: 【修改】请教老师,bat按指定日期删除文件写法

回复 5# dizimotong
你好!如果我的文件名格式是:成都【yyyy年mm月】.xls,我要删除2013年12月前的所有文件,请问这个代码怎么修改?

TOP

【求助】请教老师,bat按指定日期删除文件写法

回复 5# dizimotong

你好!如果我的文件名格式是:成都【yyyy年mm月】.xls,我要删除2013年12月前的所有文件,请问这个代码怎么修改?

TOP

  1. @echo off&&setlocal EnableDelayedExpansion
  2. cd /d d:\aa\
  3. mkdir tmp
  4. for /f %%i in ('dir /a:-d /b') do (
  5. set filename=%%i
  6. set year=!filename:~0,4!
  7. if "!year!" leq "2013" move %%i tmp/>nul
  8. )
  9. cd tmp
  10. move 2013年12月* ..\>nul
  11. del /q *
  12. cd ..
  13. rmdir tmp
  14. pause
复制代码

TOP

【急!未解决】请教老师,bat按指定日期删除文件写法

回复 8# dizimotong
我的文件名是:成都【2013年01月】.xls、成都【2013年02月】.xls、成都【2013年03月】.xls、成都【2013年04月】.xls .........
执行代码后未删除!

TOP

本帖最后由 dizimotong 于 2015-5-17 17:20 编辑
  1. @echo off&&setlocal EnableDelayedExpansion
  2. cd /d d:\aa\
  3. mkdir tmp
  4. for /f %%i in ('dir /a:-d /b') do (
  5. set filename=%%i
  6. set year=!filename:~3,4!
  7. if "!year!" leq "2013" move %%i tmp/>nul
  8. )
  9. cd tmp
  10. move 成都【2013年12月* ..\>nul
  11. del /q *
  12. cd ..
  13. rmdir tmp
  14. pause
复制代码
试一下,这个行不行。
1

评分人数

TOP

回复 10# dizimotong
我测试错误!提示:存在一个重名文件,或是找不到文件。

TOP

我想先问一下,你想删的文件是否成功删除了。
如果是的话,说明代码没有太大问题。
想要取消提示可以将
  1. move 成都【2013年12月* ..\>nul
复制代码
改为
  1. move 成都【2013年12月* ..\>nul 2>&1
复制代码

TOP

回复 12# dizimotong
没有成功删除文件!

TOP

我这边测试没问题,是不是你的文件的文件名有空格,方便的话上传一个文件给我测试一下。

TOP

回复 14# dizimotong
请问老师,bat批处理文件对文件名,长度是否有限制?如果文件名为“特殊退票登记簿【2013年10月】.xls”这个时,始终删除不了!

TOP

返回列表