Windows命令⾏(cmd)下快速查⽂件(类似Linux下find命令)
for /r ⽤法简介
⽤了Linux下的find命令,觉得查⽂件很⽅便,那么在windows下有没有类似的命令可以遍历⽬录并通过⽂件名到⽂件呢?答案是有:Windows下的 for /r 命令具有与Linux下 find 命令类似的功能,使⽤语法上类似:
find /r ⽬录名 %变量名 in (匹配模式1,匹配模式2) do 命令
匹配模式可以是通配类似于:
*.jpg:所有.jpg后缀的⽂件
*test*:所有名称中包含test的⽂件
注意:
1. 匹配模式中⾄少带上1个*号
2. 匹配内容仅限于⽂件名,不会匹配⽬录名
如果仅是查和输出⽂件名,do后⾯的命令可以⽤@echo %变量名,即:
for /r ⽬录名 %i in (匹配模式1,匹配模式2) do @echo %i
常⽤的例⼦:
# 将TestDir⽬录及所有⼦⽬录中所有的⽂件列举出来
C:\Users\cashey\Desktop>for /r TestDir %i in (*) do @echo %i
C:\Users\cashey\Desktop\TestDir\b.jpg
C:\Users\cashey\Desktop\TestDir\c.png
C:\Users\cashey\Desktop\TestDir\
C:\Users\cashey\Desktop\TestDir\
C:\Users\cashey\Desktop\TestDir\src\test.py
# 在TestDir⽬录及所有⼦⽬录中出所有的txt⽂件
find查命令的使用C:\Users\cashey\Desktop>for /r TestDir %i in (*.txt) do @echo %i
C:\Users\cashey\Desktop\TestDir\
C:\Users\cashey\Desktop\TestDir\
# 在TestDir⽬录及所有⼦⽬录中出所有的txt及jpg⽂件
C:\Users\cashey\Desktop>for /r TestDir %i in (*.txt,*.jpg) do @echo %i
C:\Users\cashey\Desktop\TestDir\b.jpg
C:\Users\cashey\Desktop\TestDir\
C:\Users\cashey\Desktop\TestDir\
# 在TestDir⽬录及所有⼦⽬录中出所有⽂件名中包含test的⽂件
C:\Users\cashey\Desktop>for /r TestDir %i in (*test*) do @echo %i
C:\Users\cashey\Desktop\TestDir\src\test.py
需要注意的点
匹配模式中如果不带*号,并不会精确匹配⽂件名,⽽会输出所有⼦⽬录拼接上该匹配模式的结果,像下⾯这样:
#
# ⽬录中事实上不包含任何名称为abc的⽂件
C:\Users\cashey\Desktop>for /r TestDir %i in (abc) do @echo %i
C:\Users\cashey\Desktop\TestDir\abc
C:\Users\cashey\Desktop\TestDir\doc\abc
C:\Users\cashey\Desktop\TestDir\src\abc
上⾯这样的输出⼀般不是你预期的,模式⾥⾄少需要带上1个*号

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。