Board logo

标题: [文件操作] 批处理如何确定缺少或多余的文件? [打印本页]

作者: hgx126    时间: 2011-12-17 00:19     标题: 批处理如何确定缺少或多余的文件?

每月我必须确认某个文件夹下必须是否有以下文件(因文件数量较多,仅列举部分):
  1. 20111130-5411.txt
  2. 20111130-5415.txt
  3. 20111130-5416.txt
  4. 20111130-5417.txt
  5. 20111130-5418.txt
  6. 20111130-5419.txt
  7. 20111130-5420.txt
  8. 20111130-5421.txt
  9. 20111130-5422.txt
  10. 20111130-5424.txt
  11. 20111130-5425.txt
复制代码
  在这个文件夹中,可能缺少一两个文件,如缺少20111130-5419.txt,20111130-5424.txt;也可能有多余的文件,如:20111130-5401.txt,20111130-5411.txt。现在以代码中的文件数量和名称为基础,将缺少的文件名称(20111130-5419.txt,20111130-5424.txt)输出(echo),将多余的文件(20111130-5401.txt,20111130-5411.txt)删除。
  因文件较多,用肉眼一个个查看,很不文件,求用批处理处理。求大家帮忙。
作者: JooKin    时间: 2011-12-17 01:36

说的不明确,如果某文件夹下只有一个20111130-5417.txt和一堆*abcd*.txt,你说是属于缺少文件还是多余文件?
作者: wc726842270    时间: 2011-12-17 01:38

本帖最后由 wc726842270 于 2011-12-17 01:39 编辑

FINDSTR最直接的,仅是换一下顺序而以
作者: jellyhk    时间: 2011-12-17 11:15

你是说你那文件夹下的文件是常量?是固定不变的每天都是同样的文件?对吗?
然后就是看有多的没?有少的没?
作者: hgx126    时间: 2011-12-17 22:15

我的意思是这个文件内应该有这些文件,如果有缺少的,就输出到屏幕或文件;如果有多余的,就删除。
作者: wc726842270    时间: 2011-12-17 22:51

  1. @ECHO OFF
  2. :: 如果不区分大小写的话,别望了“/I”。这 里的.TXT是文件而非文件夹
  3. echo 下面显示的是多的文件
  4. findstr /v /g:标准文件.txt 现实文件.txt|sort
  5. pause>nul
  6. ECHO 下面显示的是少的文件
  7. findstr /v /g:现实文件.txt 标准文件.txt|sort
  8. pause>nul
复制代码
标准文件.txt
20111130-5411.txt
20111130-5415.txt
20111130-5416.txt
20111130-5417.txt
20111130-5418.txt
20111130-5419.txt
20111130-5420.txt
20111130-5421.txt
20111130-5422.txt
20111130-5424.txt
20111130-5425.txt
现实文件.txt
20111130-5411.txt
20111130-5415.txt
20111130-5416.txt
20111130-5417.txt
20111130-5418.txt
20111130-5419.txt
20111130-5420.txt
20111130-542923.txt
20111130-5425.txt
没有想的过多,如有问题,请提出(这里主要指文件名一类的是否特殊,不是删除或获取文件名)




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2