我有 10 个文件夹的集群,每个文件夹有 1000 个程序文件。我需要在这些文本文件中搜索 MISSING 字符串。所有文件必须以 $O123456.MIN% 开头(123456 是随机文件名)。我知道如何查找字符串是否存在,但我如何识别字符串是否不存在?
一旦确定,哪个文件缺少字符串,我想要一份报告或该文件的副本,移动到另一个文件夹。
我有 10 个文件夹的集群,每个文件夹有 1000 个程序文件。我需要在这些文本文件中搜索 MISSING 字符串。所有文件必须以 $O123456.MIN% 开头(123456 是随机文件名)。我知道如何查找字符串是否存在,但我如何识别字符串是否不存在?
一旦确定,哪个文件缺少字符串,我想要一份报告或该文件的副本,移动到另一个文件夹。
你的要求不清楚。我假设以下内容:
1 - 您的 10 个文件夹的“集群”由某个根文件夹中的所有文件夹组成。
2 - 您的文本文件都有 .txt 扩展名
3 - 您想要报告指定文件夹中第一行不以 开头的所有文件$O*.MIN%
,其中 * 表示任何 1 个或多个字符,并且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
)
)
如果您的实际要求不同,则可能不需要太多代码更改。例如,以下任何更改都将是微不足道的:
这会将所有没有字符串的文件输出到文件中Missing.txt
。
for %%a in (*.*) do (
find "$O123456.MIN%" %%a
if %errorlevel%==1 echo %%a >Missing.txt
)