Board logo

标题: [文件操作] [已解决]批处理怎样获取dir命令回显的文件个数? [打印本页]

作者: chouxia    时间: 2015-8-28 13:42     标题: [已解决]批处理怎样获取dir命令回显的文件个数?

这个是dir /s的回显  我现在想抓184个文件这个回显内容,应该怎么做?
作者: WHY    时间: 2015-8-28 14:04

  1. @echo off
  2. for /f "tokens=*" %%i in ('dir /s ^| find " 个文件 "') do set "str=%%i"
  3. echo %str%
  4. pause
复制代码

作者: DAIC    时间: 2015-8-28 14:07

回复 2# WHY
  1. @echo off
  2. for /f %%i in ('dir /s /b /a-d ^| find /c "."') do set "str=%%i"
  3. echo %str%
  4. pause
复制代码
这样可以兼容英文系统
作者: chouxia    时间: 2015-8-28 14:09

dir /s 会扫描当前目录所有子目录  
也就是说  findstr /c:"个文件“会输出多个值
我只需要最后一个
也就是所列文件总数下面的那个
作者: chouxia    时间: 2015-8-28 14:18

回复 3# DAIC


    太有才了,这个思路
作者: pcl_test    时间: 2015-8-28 14:44

回复 3# DAIC

文件可能没有扩展名,用find /c ":"比较好
作者: WHY    时间: 2015-8-28 15:05

回复 3# DAIC


    哦,我还以为LZ想要获取包含“个文件”的整行内容~~
作者: chouxia    时间: 2015-8-28 15:16

我在做一个替换指定目录到另一个目录的所有子目录下的bat
因为担心xcopy会报错,所以每执行一个目录都会比对原始文件夹文件数量和行copy的回显内容
一致才继续
作者: chouxia    时间: 2015-8-28 15:16

总之  感谢各位的热心帮助
作者: DAIC    时间: 2015-8-28 16:07

回复 6# pcl_test


感谢提醒。我本来是想写成这个样子的:
  1. dir /s /b /a-d | find /v /c ""
复制代码
生疏了




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