找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: wh1234567

[文本处理] [已解决]批处理文件怎样实现端口扫描结果整理?

[复制链接]
 楼主| 发表于 2012-2-9 15:23:29 | 显示全部楼层
本帖最后由 wh1234567 于 2012-2-9 18:00 编辑

回复 15# ivor


    可能是set duankouhao= 这里的原因,如果set duankouhao= 21,22,23,25,26,正常显示,如果是set duankouhao= 21-26这样就不支持了,修正都支持就完美了,
输出时如果相应的端口号文本里没有本次ip就输出,有的话就无需再次重复输出,这样就不会出现每个相应的文本里有重复ip,可能你没有理解我说的去除重复ip的意思。在扫描的时候相同ip加相同端口会出现很多次,所以记录的是个数而不是次数
例如24.txt文本里有多个重复的,就需要去除重复。所以最好的办法是在输出时自动判断是否有重复
在这里小弟很感激
 楼主| 发表于 2012-2-9 18:38:03 | 显示全部楼层
回复 15# ivor


   能不能实现 set duankouhao=既支持21,22,23,26  也支持21-26这种格式
发表于 2012-2-9 19:21:07 | 显示全部楼层
本帖最后由 ivor 于 2012-2-9 19:25 编辑

回复 17# wh1234567
  1. @echo off
  2. set /p duankouhao=请输入端口号
  3. echo %duankouhao% | find "-" && goto :Proc

  4. for %%a in (%duankouhao%) do (
  5.         set prefix%%a=.
  6. )

  7. for /f "tokens=1,2,3*" %%i in (Result.txt) do (

  8.         if not defined %%i%%j if defined prefix%%j if "%%j" NEQ "" if "%%~xj" EQU "" (
  9.                                 set %%i%%j=.
  10.                 set /a ivor%%j+=1
  11.                 echo %%i)>>%%j.txt
  12. )

  13. for /f "tokens=1,2delims==" %%a in ('set ivor') do (
  14.         set var=%%a & set /a count+=1
  15.         call echo %%var:~4%% 端口记录了总共 %%b 个

  16. )
  17. echo 总计有 %count%个端口号
  18. pause & exit

  19. :Proc
  20. for /f "tokens=1,2 delims=-" %%a in ("%duankouhao%") do (
  21.         set min=%%a & set max=%%b
  22.        
  23. )


  24. for /f "tokens=1,2,3*" %%i in (Result.txt) do (

  25.         if not defined %%i%%j if %%j LEQ %max% if %%j GEQ %min% if "%%j" NEQ "" if "%%~xj" EQU "" (
  26.                 set %%i%%j=.
  27.                 set /a ivor%%j+=1
  28.                 echo %%i)>>%%j.txt
  29. )

  30. for /f "tokens=1,2delims==" %%a in ('set ivor') do (
  31.         set var=%%a & set /a count+=1
  32.         call echo %%var:~4%% 端口记录了总共 %%b 个

  33. )
  34. echo 总计有 %count%个端口号
  35. pause & exit
复制代码
支持范围选择,支持用(为空格、逗号、跳格或等号)分开端口号,支持过滤相同端口号重复IP
新功能不再提供,程序如果有BUG,可以反馈

评分

参与人数 1技术 +1 收起 理由
wh1234567 + 1 高手,真正实现了完美要求,再次感谢热心耐 ...

查看全部评分

 楼主| 发表于 2012-2-10 03:40:24 | 显示全部楼层
本帖最后由 wh1234567 于 2012-2-10 03:42 编辑

回复 7# ivor
  1. for /f "tokens=1,2,3*" %%i in (Result.txt) do (
  2.         if "%%j" NEQ "" if "%%~xj" EQU "" echo %%i >>%%j.txt
  3. )
  4. REM del Result.txt
复制代码
这个无需预设端口号的批处理也不错,只是需要增加在批处理界面上显示多少个端口,分别是哪些端口号的话就完美了,修正出现Time,这是第一个问题的批处理,还得劳驾修改一下,呵呵
发表于 2012-2-10 07:01:35 | 显示全部楼层
回复 17# wh1234567


    Result.txt 事如何產生的 ?
    可否提供原文件 (若檔案太大,建議提供 100-200 行)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 18:33 , Processed in 0.017730 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表