找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 27281|回复: 7

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

[复制链接]
发表于 2011-5-5 14:57:48 | 显示全部楼层 |阅读模式
请教各位,我现在遇到的问题是
有从一月到十二月的十二个文件夹,命名就是一月,二月,...,十二月。
每个月的文件夹里面存放着每个月的天数,一天是一个文件。
比如一月文件夹里面,有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文件
复制代码
谢谢各位
发表于 2011-5-5 15:54:43 | 显示全部楼层
本帖最后由 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技术 +1 收起 理由
alameda + 1 非常感谢

查看全部评分

发表于 2011-5-5 16:58:01 | 显示全部楼层
虽然话难听,单不得不说这是很愚蠢的文件分类方式.

评分

参与人数 1PB -2 收起 理由
hanyeguxing -2 明知道错的事情就不要去做

查看全部评分

发表于 2011-5-5 17:12:19 | 显示全部楼层
3# hfg1977


既然知道难听就不要说
发表于 2011-5-5 17:18:44 | 显示全部楼层
谢谢版主提醒,下次不这么说了.  ^-^!
发表于 2011-5-5 22:42:22 | 显示全部楼层
2月份里面有多少文件需要考虑闰年么?
发表于 2011-5-6 12:11:05 | 显示全部楼层
2月份里面有多少文件需要考虑闰年么?
Batcher 发表于 2011-5-5 22:42

这问题对这道题目有深度
我刚还在想那年的2月有60~~~~~~~~~~
 楼主| 发表于 2011-5-26 17:27:41 | 显示全部楼层
当时用批处理实在实现不出来,后来用其他语言实现的。

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

非常感谢楼上各位回复。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 10:21 , Processed in 0.021086 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表