批处理删除TXT文档中中国大陆IP地址

该批处理脚本可以从一个文本文件 (input.txt) 中读取所有IP地址,然后删除所有位于中国大陆范围内的IP地址,并将剩余的IP地址写入另一个文本文件 (output.txt)。

@echo off
setlocal enabledelayedexpansion

set 'inputFile=input.txt'
set 'outputFile=output.txt'

if not exist '%inputFile%' (
    echo Input file does not exist.
    exit /b
)

REM Set the IP range of China mainland
set 'chinaIPRange=0.0.0.0-255.255.255.255'

REM Read the input file line by line
for /f 'usebackq delims=' %%a in ('%inputFile%') do (
    REM Check if the current line contains an IP address
    echo %%a | findstr /r '[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*' >nul
    if not errorlevel 1 (
        REM Extract the IP address from the line
        for /f 'tokens=1' %%b in ('%%a') do (
            set 'ip=%%b'
            REM Check if the IP address is within China mainland range
            echo !ip! | findstr /r '^%chinaIPRange%' >nul
            if errorlevel 1 (
                REM Save the IP address to the output file
                echo !ip!>>'%outputFile%'
            )
        )
    ) else (
        REM Save the non-IP address line to the output file
        echo %%a>>'%outputFile%'
    )
)

echo IP filtering completed.
exit /b

使用方法:

  1. 将上述代码保存为一个 .bat 文件,例如 filter_ip.bat
  2. 将需要过滤的IP地址列表保存到 input.txt 文件中,每行一个IP地址。
  3. 在命令行中运行 filter_ip.bat 文件。
  4. 处理完成之后,过滤后的IP地址将被保存到 output.txt 文件中。

注意:

  • 该脚本只过滤中国大陆范围内的IP地址。
  • 该脚本假设 input.txt 文件存在,如果文件不存在,脚本将退出并提示错误。
  • 您可以修改 chinaIPRange 变量来过滤其他国家或地区的IP地址。
  • 该脚本只能过滤以点分十进制表示的IP地址,无法过滤其他格式的IP地址。

示例:

假设 input.txt 文件内容如下:

192.168.1.1
111.111.111.111
10.10.10.10
202.106.132.16

运行脚本后,output.txt 文件的内容将如下所示:

192.168.1.1
10.10.10.10

代码说明:

  • setlocal enabledelayedexpansion:启用延迟环境变量扩展,以便在循环中使用变量的值。
  • set 'inputFile=input.txt':定义输入文件名。
  • set 'outputFile=output.txt':定义输出文件名。
  • if not exist '%inputFile%' ...:检查输入文件是否存在,如果不存在则退出脚本。
  • set 'chinaIPRange=0.0.0.0-255.255.255.255':定义中国大陆IP地址范围。
  • for /f 'usebackq delims=' %%a in ('%inputFile%') do ...:循环读取输入文件中的每一行。
  • echo %%a | findstr /r '[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*' >nul:检查当前行是否包含IP地址。
  • for /f 'tokens=1' %%b in ('%%a') do ...:提取当前行中的IP地址。
  • set 'ip=%%b':将提取的IP地址保存到变量 ip 中。
  • echo !ip! | findstr /r '^%chinaIPRange%' >nul:检查IP地址是否在中国大陆范围内。
  • if errorlevel 1 ...:如果IP地址不在中国大陆范围内,则将其写入输出文件。
  • echo %%a>>'%outputFile%':如果当前行不是IP地址,则将其写入输出文件。
  • echo IP filtering completed.:脚本执行完成,显示提示信息。
  • exit /b:退出脚本。

原文地址: https://www.cveoy.top/t/topic/qsnz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录