Windows 用于在多个文件中搜索多个字符串的批处理脚本

Windows 用于在多个文件中搜索多个字符串的批处理脚本,windows,batch-file,search,Windows,Batch File,Search,我试图编写一个批处理脚本来完成以下任务 我在一个名为empids.txt的文本文件中列出了1000个唯一的员工ID(数字ID,数字数量可能不同)。我还有一个名为MasterID的文件夹,其中包含多个文本文件,每个文本文件有10万个ID 我尝试了一个批处理脚本来搜索empids.txt中列出的1000个ID,并显示MasterIDs文件夹中的多个文本文件中是否存在任何列出的ID。预期结果如下所示 预期产出 12345678可在*.txt中找到 找不到1145897 下面是我尝试的批处理脚本,我

我试图编写一个批处理脚本来完成以下任务

我在一个名为empids.txt的文本文件中列出了1000个唯一的员工ID(数字ID,数字数量可能不同)。我还有一个名为MasterID的文件夹,其中包含多个文本文件,每个文本文件有10万个ID

我尝试了一个批处理脚本来搜索empids.txt中列出的1000个ID,并显示MasterIDs文件夹中的多个文本文件中是否存在任何列出的ID。预期结果如下所示

预期产出

  • 12345678可在*.txt中找到
  • 找不到1145897
下面是我尝试的批处理脚本,我没有得到预期的输出。它只是搜索并给出包含搜索字符串的整行

set manifest_folder=\\vfiler-padhu\padhu\*.txt
set file_list=\\vfiler-padhu\padh\File_list.txt
set tmpFile=\\vfiler-padhu\padh\tmpFile.txt
for /f "delims=" %%f in (%file_list%) do (
findstr /L  %%f %manifest_folder% >> %tmpFile%
) 
pause
我刚开始学习批处理脚本。请帮忙完成这项任务

@echo off
setlocal enableextensions disabledelayedexpansion

set "manifest_folder=\\vfiler-padhu\padhu\*.txt"
set "file_list=\\vfiler-padhu\padh\File_list.txt"
set "tmpFile=\\vfiler-padhu\padh\tmpFile.txt"

    (for /f "usebackq delims=" %%a in ("%file_list%") do (
        set "found="
        for /f "delims=" %%b in ('findstr /l /m /c:"%%a" "%manifest_folder%"') do (
            echo %%a is found in %%~nxb
            set "found=1"
        )
        if not defined found (
            echo %%a is not found
        )
    )) > "%outputFile%"

这将读取输入文件,并对每行/id执行清单文件夹中的搜索,询问找到id的文件的名称。

您需要找到id的文件的名称还是只知道找到了id?我还需要文件名。。比如1234567是在*.txtWorks中找到的。非常感谢。标记为答案的。