Batch file 如何查找不包含';不包含字符串?
我在此网站上找到了以下代码:Batch file 如何查找不包含';不包含字符串?,batch-file,for-loop,Batch File,For Loop,我在此网站上找到了以下代码: @echo off setlocal set "rootFolder=c:\yourRootPath" set "fileMask=*.txt" set "outFile=missing.txt" >"%outFile%" ( for /d %%D in ("%rootFolder%") for %%F in ("%%D\%fileMask%") do ( findstr /nbr "$O..*\.MIN%%" "%%F" | findstr /
@echo off
setlocal
set "rootFolder=c:\yourRootPath"
set "fileMask=*.txt"
set "outFile=missing.txt"
>"%outFile%" (
for /d %%D in ("%rootFolder%") for %%F in ("%%D\%fileMask%") do (
findstr /nbr "$O..*\.MIN%%" "%%F" | findstr /bl "1:" >nul || echo %%F
)
)
但是,当我运行批处理文件时,我收到以下错误:“for此时是意外的。”
我的研究表明,这通常是由于不使用双精度%%
造成的,但显然不是这样。
我想这是一个简单的方法,但我无法解决,有什么建议吗?这种方法应该运行得更快:
@echo off
setlocal
set "rootFolder=c:\yourRootPath"
set "fileMask=*.txt"
set "outFile=%~P0missing.txt"
cd "%rootFolder%"
findstr /S /M /B /R "$O..*\.MIN%%" "%fileMask%" > temp.tmp
( dir /S /A-D /B "%fileMask%" | findstr /V /G:temp.tmp ) > "%outFile%"
del temp.tmp
missing.txt
文件存储在批处理文件的同一文件夹中,该文件夹不得位于搜索文件的文件夹中 您的第一个for
语句没有附带的do
。对于VBA的类比来说,这就像是一个如果
没有那么
。多么奇怪——这也有。