使用 Windows CMD 从多个文件中提取电子邮件地址

Extract email adresses from several files with Windows CMD

我有大约 1000 个 txt.files,其中包含大量数据,例如电子邮件地址、姓名、邮政编码、服务...在这个文件夹中:C:\Users\dupont\Documents\test 我想提取所有电子邮件地址,并且只提取此文件夹中的电子邮件地址,然后将其复制到另一个 .txt 文件。

所以我创建了一个类似的 .bat 来提取电子邮件地址:

findstr @ C:\Users\dupont\Documents\test\ad.txt >C:\Users\dupont\Documents\test\results.txt
pause

问题是,它提取了所有行 此外,我不知道如何在命令中询问,将带有“@”的字符串搜索分隔为 space、制表符、回车符 return 实际上,该命令必须与@、@之前的词(直到space)和@(之后的词匹配,直到space

感谢您的帮助 祝你有美好的一天

对于每个文本文件 (%%f) 一个接一个地处理每一行 (%%a)。通过 spaces(标准分隔符是 space 和 TAB)将行拆分为元素 (%%b),如果元素包含 @,则打印它:

@echo off
for %%f in (*.txt) do (
  for /f "tokens=*" %%a in (%%f) do (
    for %%b in (%%a) do (
      echo %%b|find "@"
    )
  ) 
)