Batch file 如何查找具有特定模式的文件夹和文件
我想编写一个批处理文件,该文件将写入包含特定模式的所有文件和文件夹,并包含排除文件夹,但不会成功:Batch file 如何查找具有特定模式的文件夹和文件,batch-file,Batch File,我想编写一个批处理文件,该文件将写入包含特定模式的所有文件和文件夹,并包含排除文件夹,但不会成功: @ECHO OFF for /r "%c:\" %%x in (david) do ( echo "%%x" findstr /f:exclude.txt /c:"%%x" > nul || echo.%%x >> c:\david.log ) goto :eof 排除文件: C:\$Recycle.Bin\ c:\temp\ 帮助?(排除是/g:;/f:是一件非常
@ECHO OFF
for /r "%c:\" %%x in (david) do (
echo "%%x"
findstr /f:exclude.txt /c:"%%x" > nul || echo.%%x >> c:\david.log
)
goto :eof
排除文件:
C:\$Recycle.Bin\
c:\temp\
帮助?(排除是/g:
;/f:
是一件非常不同的事情-请参阅以获取/?
)
(排除是/g:
;/f:
是另一回事-请参见以获取/?
)
好吧,给我几分钟时间。但我认为我的版本更好,因为
- 还可以查找隐藏的文件和文件夹
- 只运行一次
,而不是在每个找到的文件或文件夹名上运行一次,这样会更快findstr
C:\Temp\Exclude.txt
包含要忽略的文件夹列表。在文件中转义$
很重要,否则它将被解释为非文字
C:\Temp\Exclude.txt的示例:
C:\\$Recycle.bin
C:\Temp
批处理文件或多或少包含一行:
@echo off
dir /A /B /S C:\*david* | %SystemRoot%\System32\findstr.exe /B /I /V /G:"C:\Temp\Exclude.txt" >C:\Temp\david.log
由于可以通过在命令提示窗口中运行dir/?
来读取,因此参数/a
会导致包含具有任何属性的文件和文件夹,该属性还包括隐藏的文件和文件夹以及系统文件和文件夹。选项/B
表示裸格式,/S
用于搜索和列出所有子目录中匹配的文件和文件夹
在命令提示符窗口中执行的findstr/?
输出此命令的帮助<代码>/B
表示行的开头/I
表示忽略大小写进行搜索/V
是最重要的选项,因为它意味着输出不包含搜索字符串的所有行。使用/G
指定带有搜索字符串的文件
结果被重定向到文件C:\Temp\david.log
好的,给我几分钟时间。但我认为我的版本更好,因为
- 还可以查找隐藏的文件和文件夹
- 只运行一次
,而不是在每个找到的文件或文件夹名上运行一次,这样会更快findstr
C:\Temp\Exclude.txt
包含要忽略的文件夹列表。在文件中转义$
很重要,否则它将被解释为非文字
C:\Temp\Exclude.txt的示例:
C:\\$Recycle.bin
C:\Temp
批处理文件或多或少包含一行:
@echo off
dir /A /B /S C:\*david* | %SystemRoot%\System32\findstr.exe /B /I /V /G:"C:\Temp\Exclude.txt" >C:\Temp\david.log
由于可以通过在命令提示窗口中运行dir/?
来读取,因此参数/a
会导致包含具有任何属性的文件和文件夹,该属性还包括隐藏的文件和文件夹以及系统文件和文件夹。选项/B
表示裸格式,/S
用于搜索和列出所有子目录中匹配的文件和文件夹
在命令提示符窗口中执行的findstr/?
输出此命令的帮助<代码>/B
表示行的开头/I
表示忽略大小写进行搜索/V
是最重要的选项,因为它意味着输出不包含搜索字符串的所有行。使用/G
指定带有搜索字符串的文件
结果被重定向到文件
C:\Temp\david.log
也许for/f%%a in('dir/s C:\*david*')do(Echo Stuff…
但是我想排除ex-C:\$Recycle.bin、C:\Temp等的特殊路径。也许for/f%%a in('dir/s C:\*david*')do(Echo Stuff…)
但我想排除ex-c:\$Recycle.bin、c:\temp等的特殊路径。。