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

[文件操作] [已解决]批处理怎样获取dir命令回显的文件个数?

这个是dir /s的回显  我现在想抓184个文件这个回显内容,应该怎么做?
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

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

TOP

回复 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
复制代码
这样可以兼容英文系统
1

评分人数

TOP

dir /s 会扫描当前目录所有子目录  
也就是说  findstr /c:"个文件“会输出多个值
我只需要最后一个
也就是所列文件总数下面的那个

TOP

回复 3# DAIC


    太有才了,这个思路

TOP

回复 3# DAIC

文件可能没有扩展名,用find /c ":"比较好

TOP

回复 3# DAIC


    哦,我还以为LZ想要获取包含“个文件”的整行内容~~

TOP

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

TOP

总之  感谢各位的热心帮助

TOP

回复 6# pcl_test


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

TOP

返回列表