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

[文本处理] 批处理如何删除文件名开头部分字符相同的文件中最新之外的其他文件

本帖最后由 pcl_test 于 2016-8-8 18:37 编辑

求助

文件名的格式是 条码+时间

比如:H5RA652005R_201608080422.txt
         
         H5RA652005R_201608080526.txt

         H5RA652005R_201608080635.txt

         H5RA652005R_201608071725.txt

其中的条码部分相同。

针对这种情况,如何将条码相同的文本文件批量删除,只保留一个。

  1. @echo off
  2. for /f "tokens=1* delims=_" %%a in ('dir /b *_*.txt') do if defined #%%a (echo,del %%a_%%b) else set #%%a=.
  3. pause
复制代码
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

非常感谢,等下就去试试。

TOP

不要求保留最新的么?

TOP

回复 2# xxpinqz


    刚试了一下,结果显示

   按了回车后,查看文件夹中重复的文本文档并没删除。

   不知是什么原因。

   帮忙再看看。多谢 。

TOP

回复 4# pcl_test


    多谢提醒。

    保留最新的更好。

TOP

本帖最后由 pcl_test 于 2016-8-8 18:30 编辑

回复 5# seichinaren

简单看看,要是上面代码是把你盘全格式化了,你也运行吗?
http://www.bathome.net/thread-13798-1-1.html
http://bbs.bathome.net/thread-13860-1-1.html

保留最新的dir /b *_*.txt 改为dir /b *_*.txt^|sort /r
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

回复 7# xxpinqz


    非常感谢 ,

    大家都是有学识的人,所以没有想过你说的这种全盘格式化的风险。

    刚继续试了一下,其它都好,就是不能删除啊。

TOP

本帖最后由 pcl_test 于 2016-8-8 19:01 编辑

回复 8# seichinaren
就这一行代码测试下
  1. echo,看到什么?&>nul ping -n 3 0&echo /?&pause
复制代码

TOP

回复 9# pcl_test


    非常感谢

    试了一下

    CMD画面一闪而过,重复的文档岿然不动。

TOP

回复 10# seichinaren

嗯,还是你会玩……

TOP

回复 11# pcl_test


    呵呵,术业有专功,

    这个方面的知识,我一点都不懂。

   才求助于各位。

TOP

回复 12# seichinaren

还是一行
  1. help|findstr /i "del echo"&pause
复制代码

TOP

  1. PowerShell -c "dir *_*.txt | Group {($_.Name -Split '_')[0]} | ?{$_.Count-1} | del -Path {$_.Group[0..($_.Count-2)]}"
复制代码

TOP

回复 14# WHY


    非常感谢

    完全满足需求。

TOP

返回列表