You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用批处理(Batch)修复邮件密码过滤提取程序?

解决批处理提取邮箱密码时的冗余内容问题

我有一个名为file.txt的文本文件,内容如下:

Combo: testing123mail@gmail.com:password
As Combo: abcdefghijklmnopqrstuvwxyz@gmail.com:ajfbdf
some text here some more text here
As Combo: hadvsfhia@ahfjbadj.com:password@1
some random text here
iloveu@gmail.com:passypassyword123
goldenmammy@hotmail.com:youtube123

我运行以下代码,试图从file.txt中仅过滤提取「邮件:密码」格式的内容:

for /f "tokens=3" %%a in ('type file.txt^|find "As Combo:"') do >>mail.txt echo %%a
for /f "tokens=2" %%b in ('type file.txt^|find "Combo:"') do >>mail.txt echo %%b
for /f "tokens=1" %%c in ('type file.txt^|":"') do >>mail.txt echo %%c

预期mail.txt的输出内容为:

abcdefghijklmnopqrstuvwxyz@gmail.com:ajfbdf
hadvsfhia@ahfjbadj.com:password@1
testing123mail@gmail.com:password
iloveu@gmail.com:passypassyword123
goldenmammy@hotmail.com:youtube123

但实际输出包含冗余内容:

abcdefghijklmnopqrstuvwxyz@gmail.com:ajfbdf
hadvsfhia@ahfjbadj.com:password@1
testing123mail@gmail.com:password
Combo:
Combo:
Combo:
As
As
iloveu@gmail.com:passypassyword123
goldenmammy@hotmail.com:youtube123

问题根源

你的代码主要有两个问题:

  1. 第三个for循环存在语法错误:你写成了type file.txt^|":",缺少了find命令,正确写法应为type file.txt ^| find ":"。即使修正语法,tokens=1会按空格拆分每行并提取第一个部分,导致错误抓取到As、Combo:这类无关内容。
  2. 第三个循环没有过滤已被前两个循环处理过的带前缀行,导致重复处理并输出冗余内容。

解决方案

下面是修正后的批处理脚本,能精准提取所有符合邮箱:密码格式的内容,不会产生冗余:

@echo off
setlocal enabledelayedexpansion

:: 清空目标文件(避免多次运行累积旧内容)
echo. > mail.txt

>>mail.txt (
    :: 处理带 "As Combo:" 前缀的行,提取前缀后的邮箱密码
    for /f "tokens=3" %%a in ('type file.txt ^| find "As Combo:"') do (
        echo %%a
    )

    :: 处理带 "Combo:" 前缀的行,提取前缀后的邮箱密码
    for /f "tokens=2" %%b in ('type file.txt ^| find "Combo:"') do (
        echo %%b
    )

    :: 处理无前缀的纯邮箱:密码行,先过滤掉已处理的带前缀行
    for /f "delims=" %%c in ('type file.txt ^| findstr /v /c:"Combo:" /c:"As Combo:" ^| find ":"') do (
        echo %%c
    )
)

endlocal

脚本说明

  • 前两个for循环保留了你原本的正确逻辑,分别提取带As Combo:和Combo:前缀行中的邮箱密码部分。
  • 第三个循环用findstr /v过滤掉已处理的带前缀行,再用find ":"筛选出包含冒号的纯邮箱密码行,delims=确保整行被输出,不会被空格拆分。
  • 用>>mail.txt (把所有输出合并写入,比多次追加更高效。

运行这个脚本后,mail.txt的内容就会和你预期的完全一致。

内容的提问来源于stack exchange,提问作者sai Surya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:34:51