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

[文件操作] 批处理如何统计文件夹中按规则命名的缺失文件?

请教各位,我现在遇到的问题是
有从一月到十二月的十二个文件夹,命名就是一月,二月,...,十二月。
每个月的文件夹里面存放着每个月的天数,一天是一个文件。
比如一月文件夹里面,有001.txt,,002.txt,...,031.txt,
二月文件夹里面,有032.txt,033.txt,...,061.txt,
但是可能不完整,比如二月缺少了050.txt,056.txt的数据。

那我要怎么统计出缺失了哪一天的数据呢?

我现在批处理语句只写出统计出每个文件夹或总的文件夹中的txt格式的文件个数。
如下:
  1. echo off
  2. set num=0
  3. for /r %2 %%i in (%1) do (
  4. set /a num+=1
  5. echo num 当前的值是 %num%
  6. )
  7. echo 当前目录下共有 %num% 个txt文件
复制代码
谢谢各位

本帖最后由 hanyeguxing 于 2011-5-5 16:51 编辑

061.txt,
二月里怎么会有 061.txt ?最大应该是 059.txt 或 060.txt ...


set Y=2011 用来设置年份
  1. @echo off&setlocal enableDelayedExpansion&set M=1000
  2. set Y=2011
  3. for %%a in (一 二 三 四 五 六 七 八 九 十 十一 十二) do set/a K+=1&set #!K!=%%a
  4. for /l %%a in (1,1,12) do (
  5.     set/a "K=^!(%%a-4)|^!(%%a-6)|^!(%%a-9)|^!(%%a-11)","D=^!(%%a-2)*(28+((^!(Y%%4)&^!^!(Y%%100))|^!(Y%%400)))+K*30+(^!^!(%%a-2)&^!K)*31"
  6.     for /l %%b in (1,1,!D!) do (
  7.         set/a M+=1
  8.         if not exist "!#%%a!月\!M:~-3!.txt" echo;缺少 !#%%a!月\!M:~-3!.txt 即 %Y%年 %%a月 %%b日
  9. ))
  10. pause
复制代码
1

评分人数

寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

虽然话难听,单不得不说这是很愚蠢的文件分类方式.
1

评分人数

TOP

3# hfg1977


既然知道难听就不要说
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

谢谢版主提醒,下次不这么说了.  ^-^!

TOP

2月份里面有多少文件需要考虑闰年么?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

2月份里面有多少文件需要考虑闰年么?
Batcher 发表于 2011-5-5 22:42

这问题对这道题目有深度
我刚还在想那年的2月有60~~~~~~~~~~

TOP

当时用批处理实在实现不出来,后来用其他语言实现的。

这个是要考虑闰年的。
而且楼上有人说存储方式很愚蠢,没办法,因为是特定的数据,也是为了方便以后索引和数据处理,所以才这样存储的。

非常感谢楼上各位回复。

TOP

返回列表