0

我有 10 个文件夹的集群,每个文件夹有 1000 个程序文件。我需要在这些文本文件中搜索 MISSING 字符串。所有文件必须以 $O123456.MIN% 开头(123456 是随机文件名)。我知道如何查找字符串是否存在,但我如何识别字符串是否不存在?

一旦确定,哪个文件缺少字符串,我想要一份报告或该文件的副本,移动到另一个文件夹。

4

2 回答 2

0

你的要求不清楚。我假设以下内容:

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
  )
)

如果您的实际要求不同,则可能不需要太多代码更改。例如,以下任何更改都将是微不足道的:

  • 更改文件掩码
  • 使搜索不区分大小写
  • 递归处理根文件夹中的所有文件夹
  • 处理特定文件夹的列表
  • 限制随机文件中可以使用哪些字符和/或多少个字符(您的 0123456)
于 2013-01-17T19:34:38.480 回答
0

这会将所有没有字符串的文件输出到文件中Missing.txt

for %%a in (*.*) do (
find "$O123456.MIN%" %%a
if %errorlevel%==1 echo %%a >Missing.txt
)
于 2013-01-17T17:07:40.123 回答