我有10个文件夹的集群,每个文件夹有1000个程序文件。我需要在这些文本文件中搜索MISSING字符串。所有文件必须以$ O123456.MIN%开头(123456是随机文件名)。我知道如何查找字符串是否存在,但如何识别该字符串是否不存在?
一旦识别出来,哪个文件缺少字符串,我想收集报告或该文件的副本,移动到另一个文件夹。
答案 0 :(得分:0)
这会将所有没有该字符串的文件输出到文件Missing.txt
。
for %%a in (*.*) do (
find "$O123456.MIN%" %%a
if %errorlevel%==1 echo %%a >Missing.txt
)
答案 1 :(得分:0)
您的要求不明确。我假设以下内容:
1 - 10个文件夹的“群集”包含特定根文件夹中的所有文件夹。
2 - 您的文本文件都有.txt扩展名
3 - 您要报告指定文件夹中第一行不以$O*.MIN%
开头的所有文件,其中*代表任意一个或多个字符,O
和MIN
区分大小写。
@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
)
)
如果您的实际要求不同,则可能不会花费太多代码更改。例如,以下任何更改都很容易实现: