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

[文件操作] [已解决]批处理判断find的结果以获取指定类型文件的数量

假设在"D:\"目录下面有好多文件:
te.txt
a.txt
1.txt
test.bat
oer.txt
setup.ini
我的目的是要查找D:\盘下所有扩展名为"txt"的文件的数量,并对结果进行判断.
  1. dir /b *.txt|find /c ".txt"
复制代码
其结果为: 4
可是如果我想把这里的结果4赋值给变量txtcount,该如何操作?
因为接下来我还想执行诸如 if not "%txtcount%" == "4" @echo text file count error!
等等批处理.
请各位大大不吝指教,小弟在此先行谢过!
如果能不用"find"而有其他简单且效率较高的办法更好,我的主要目的就是查找指定目录下,指定文件类型的数目,并进行判断.

[ 本帖最后由 kent 于 2009-7-15 13:38 编辑 ]
1

评分人数

    • keen: 感谢主动给标题标注[已解决]字样PB + 2

  1. @echo off
  2. cd /d "D:\"
  3. set count=0
  4. for /f %%a in ('dir /a-d/b *.txt 2^>nul') do set /a count+=1
  5. if not "%count%" == "4" echo text file count error!
  6. pause
复制代码

TOP

太强悍了,结果完全正确,而且非常严谨.
只是仍有些读不懂,劳烦进一步赐教.
dir /a-d/b *.txt 2^>nul
中的"2 ^>nul"  作何解释?

TOP

在论坛里搜下"nul"或许会有用!!!

TOP

  1. @echo off
  2. set /a count=-2&&cd /d d:
  3. for /f "skip=5" %%a in ('dir *.txt') do set /a count+=1
  4. if not "%count%" == "4" echo text file count error!
  5. pause
复制代码

没有用find,将dir命令结果的头五行滤去,然后减去命令统计结果所占去的两行(将count设置为-2的原因)。

[ 本帖最后由 Lumiere 于 2009-7-13 16:22 编辑 ]
Still with wax

TOP

返回列表