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

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

原代码:
  1. for /f "usebackq tokens=1,2,3*" %%i in (Result.txt) do (
  2. if 1433==%%j (
  3. echo %%i>>1433.txt
  4.   ) else (
  5.    if 80==%%j (
  6.     echo %%i>>80.txt
  7.      ) else (
  8.       if 79==%%j (
  9.        echo %%i>>79.txt
  10.         ) else (
  11.          if 53==%%j (
  12.           echo %%i>>53.txt
  13.            ) else (
  14.             if 21==%%j (
  15.              echo %%i>>21.txt
  16.               ) else (
  17.                if 23==%%j (
  18.                echo %%i>>23.txt
  19.                 ) else (
  20.                  if 135==%%j (
  21.                   echo %%i>>135.txt
  22.                    ) else (
  23.                     if 139==%%j (
  24.                      echo %%i>>139.txt
  25.                       ) else (
  26.                        if 445==%%j (
  27.                         echo %%i>>445.txt
  28.                          ) else (
  29.                           if 2967==%%j (
  30.                            echo %%i>>2967.txt
  31.                             ) else (
  32.                              if 161==%%j (
  33.                               echo %%i>>161.txt
  34.                                ) else (
  35.                                 if 160==%%j (
  36.                                  echo %%i>>160.txt
  37.                                   ) else (
  38.                                    if 9431==%%j (
  39.                                     echo %%i>>9431.txt
  40.                                      ) else (
  41.                                       if 8383==%%j (
  42.                                        echo %%i>>8383.txt
  43.                                         ) else (
  44.                                          if 3306==%%j (
  45.                                           echo %%i>>3306.txt
  46. )
  47. )
  48. )
  49. )
  50. )
  51. )
  52. )
  53. )
  54. )
  55. )
  56. )
  57. )
  58. )
  59. )
  60. )
  61. )
复制代码
如何修改成以扫描到的端口分别以端口号为文件名输出?也就是无需设置具体输出的端口号
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 wh1234567 于 2012-2-8 20:31 编辑

回复 2# ivor


    老兄,好像不行,能不能将处理时产生的临时文件一并删除?

TOP

回复 2# ivor


    能不能将处理时产生的临时文件一并删除?

TOP

回复 5# ivor


能不能去除重复行,并将处理时产生的临时文件一并删除?

TOP

本帖最后由 wh1234567 于 2012-2-8 23:35 编辑

回复 7# ivor

第一个问题:
这次正常了,
    输出的文本能不能分别去除重复行,最后在批处理界面上显示多少个端口,分别是哪些端口号?

第二个问题:
另外如果想将原代码精简一下的话,如何设定指定输出的多个端口号?例如:
set duankouhao=1,2,3402,4,5,26,7,8,9
代码该如何修改?

TOP

本帖最后由 wh1234567 于 2012-2-9 06:05 编辑

回复 9# ivor


    这个和第一个问题以及第二个问题都不太相符,并且不能删除临时文件以及分别去除输出文本里的重复ip;端口号总数其实也就是以端口号为文件名输出的文本个数;在批处理界面上显示每个端口号分别是多少个ip即可。
第一个问题以及第二个问题可能得分别2个批处理

TOP

回复 11# ivor

非常感谢您的帮忙,9楼的代码能不能修正一下,有些小错误和不能删除临时文件,增加一个端口共计多少个也就是以端口号为文件名输出的文本个数。

另外 set duankouhao=1,2,3402,4,5,26,7,8,9 是属于第二个问题也就是指定输出多个端口号为文件名的文本,第一个问题不需要这个代码

TOP

本帖最后由 wh1234567 于 2012-2-9 15:26 编辑

回复 13# ivor
大有进步

    环境变量 ivor 没有定义
总计有 个端口号
请按任意键继续. . .

21-26这种格式能不能支持也就是21到26?既支持21,22,23,26  也支持21-26这种格式

并且要求分别以端口号命名输出,

TOP

本帖最后由 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文本里有多个重复的,就需要去除重复。所以最好的办法是在输出时自动判断是否有重复
在这里小弟很感激

TOP

回复 15# ivor


   能不能实现 set duankouhao=既支持21,22,23,26  也支持21-26这种格式

TOP

本帖最后由 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,这是第一个问题的批处理,还得劳驾修改一下,呵呵

TOP

返回列表