Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何查找不包含';不包含字符串?_Batch File_For Loop - Fatal编程技术网

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的类比来说,这就像是一个
如果
没有
那么
。多么奇怪——这也有。