如何用Windows批处理脚本提取JSON文件中的IP列表
用Windows批处理提取JSON文件中的IP列表
针对你提供的demo.json文件,这里提供两种可行的批处理方案来提取IP列表:
方案1:原生批处理(无需外部工具)
原生批处理通过字符串匹配和截取来提取IP,适合结构固定的JSON文件。创建一个extract_ip.bat脚本,内容如下:
@echo off setlocal enabledelayedexpansion :: 遍历文件中包含"ip":"的行 for /f tokens^=2^ delims^=^" %%i in ('findstr /r "\"ip\":\"[0-9\.]*\"" demo.json') do ( echo %%i :: 如果需要保存到文件,替换上面的echo为:echo %%i >> ip_list.txt ) endlocal
说明:
findstr /r "\"ip\":\"[0-9\.]*\""用于匹配所有包含"ip":"xxx.xxx.xxx.xxx"格式的行tokens^=2^ delims^=^"指定以双引号为分隔符,取第2个部分(即IP地址)- 若要将结果保存到文件,把
echo %%i改成echo %%i >> ip_list.txt即可
方案2:批处理调用PowerShell(更可靠,支持复杂JSON)
PowerShell对JSON的解析更专业,适合结构可能变化的JSON文件。脚本内容如下:
@echo off :: 调用PowerShell解析JSON并提取IP,输出到控制台 powershell -Command "$json = Get-Content 'demo.json' -Raw | ConvertFrom-Json; $json.data | ForEach-Object { $_.ip }" :: 如果需要保存到文件,使用以下命令替换上面的行: :: powershell -Command "$json = Get-Content 'demo.json' -Raw | ConvertFrom-Json; $json.data | ForEach-Object { $_.ip } | Out-File 'ip_list.txt' -Encoding utf8"
说明:
Get-Content 'demo.json' -Raw读取整个JSON文件为字符串ConvertFrom-Json将字符串转为PowerShell可操作的对象$json.data | ForEach-Object { $_.ip }遍历data数组中的每个对象,提取ip属性值- 保存文件时用
Out-File指定路径,-Encoding utf8确保编码正确
内容的提问来源于stack exchange,提问作者aqiao
相关产品推荐
相关产品推荐

