Board logo

标题: 帮忙解释一下这条命令 [打印本页]

作者: zh32     时间: 2023-4-10 08:07    标题: 帮忙解释一下这条命令

dir /b | find /v /c ":"
前面的能理解,后面的“:”是什么意思 呢?
作者: DOSforever     时间: 2023-4-14 12:59
文件名中不能含有冒号,那么让 find 查找包含有 ":" 的文件名其实是找不到的,/v 参数就是查找不包含有 ":" 的文件名,因为所有的文件都不会包含有 ":" ,也就是 find 会列出所有文件名,/c 就是计数有多少个文件名。所以整个这条命令就是统计下当前目录下一共有多少个文件(和目录),仅输出个数字就可以了。
作者: zh32     时间: 2023-4-15 16:00
C:\Users\zz>dir /b /ad /s |find /v /c  ":"
0

C:\Users\zz>dir /b /ad /s |find /v /c  "::"
7172

然后以看了一下说明,明白参数的做用了,
这个又是怎么回事呢?第一条执行不正确,第二第可以正常统计数量
当然,试了别的特殊符号,*?/等等都可以,但为什么第一条执行是不正常呢?
作者: DOSforever     时间: 2023-4-16 14:59
你看看你第二次第一个命令与第一次命令的参数不同,dir /s /ad 表示只列目录和子目录,所列出的目录名是全名,都是带盘符的,而盘符是带冒号的,所以你让 find 去找不带 : 的字符当然是找不到了,当然结果为 0 了。明白了这点,那你第二条命令为什么能有正常统计结果也该明白了吧?
作者: HAT     时间: 2023-7-27 16:19
建议把冒号删掉,这样就不用纠结到底写几个了。
dir /b | find /v /c ""