标题: [文本处理] 批处理如何删除文件名开头部分字符相同的文件中最新之外的其他文件 [打印本页]
作者: seichinaren 时间: 2016-8-8 04:33 标题: 批处理如何删除文件名开头部分字符相同的文件中最新之外的其他文件
本帖最后由 pcl_test 于 2016-8-8 18:37 编辑
求助
文件名的格式是 条码+时间
比如:H5RA652005R_201608080422.txt
H5RA652005R_201608080526.txt
H5RA652005R_201608080635.txt
H5RA652005R_201608071725.txt
其中的条码部分相同。
针对这种情况,如何将条码相同的文本文件批量删除,只保留一个。
作者: xxpinqz 时间: 2016-8-8 09:06
- @echo off
- for /f "tokens=1* delims=_" %%a in ('dir /b *_*.txt') do if defined #%%a (echo,del %%a_%%b) else set #%%a=.
- pause
复制代码
作者: seichinaren 时间: 2016-8-8 16:50
非常感谢,等下就去试试。
作者: pcl_test 时间: 2016-8-8 16:59
不要求保留最新的么?
作者: seichinaren 时间: 2016-8-8 17:01
回复 2# xxpinqz
刚试了一下,结果显示
按了回车后,查看文件夹中重复的文本文档并没删除。
不知是什么原因。
帮忙再看看。多谢 。
作者: seichinaren 时间: 2016-8-8 17:03
回复 4# pcl_test
多谢提醒。
保留最新的更好。
作者: xxpinqz 时间: 2016-8-8 18:22
本帖最后由 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
作者: seichinaren 时间: 2016-8-8 18:40
回复 7# xxpinqz
非常感谢 ,
大家都是有学识的人,所以没有想过你说的这种全盘格式化的风险。
刚继续试了一下,其它都好,就是不能删除啊。
作者: pcl_test 时间: 2016-8-8 18:50
本帖最后由 pcl_test 于 2016-8-8 19:01 编辑
回复 8# seichinaren
就这一行代码测试下- echo,看到什么?&>nul ping -n 3 0&echo /?&pause
复制代码
作者: seichinaren 时间: 2016-8-8 18:56
回复 9# pcl_test
非常感谢
试了一下
CMD画面一闪而过,重复的文档岿然不动。
作者: pcl_test 时间: 2016-8-8 18:59
回复 10# seichinaren
嗯,还是你会玩……
作者: seichinaren 时间: 2016-8-8 19:04
回复 11# pcl_test
呵呵,术业有专功,
这个方面的知识,我一点都不懂。
才求助于各位。
作者: pcl_test 时间: 2016-8-8 19:08
回复 12# seichinaren
还是一行- help|findstr /i "del echo"&pause
复制代码
作者: WHY 时间: 2016-8-8 19:52
- PowerShell -c "dir *_*.txt | Group {($_.Name -Split '_')[0]} | ?{$_.Count-1} | del -Path {$_.Group[0..($_.Count-2)]}"
复制代码
作者: seichinaren 时间: 2016-8-9 10:01
回复 14# WHY
非常感谢
完全满足需求。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |