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

[网络连接] 【已经解决】批处理如何用for提取netstat -ano返回结果中的特定ip地址?

本帖最后由 raddison 于 2017-4-25 18:18 编辑

求帮忙,关于forloop嵌套调用,传入外循环的变量值到内循环
  1. for /f "tokens=2" %%a in ('netstat -ano') do (
  2. set "str=%%a"
  3. SETLOCAL ENABLEDELAYEDEXPANSION
  4. call set str=!str:%search%=%replace%!
  5.   
  6. call :kill !r!
  7.   ENDLOCAL
  8. )
  9. :kill
  10. for  /f "tokens=4" %%c in (echo %1) do  (
  11.   echo !c!
  12. )
复制代码
其实我想实现,提取netstat -ano这个命令的返回结果当中的ip地址的列表而已
1

评分人数

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

  1. @echo off
  2. for /f "tokens=2" %%i in ('netstat -ano ^| findstr "\..*\..*\..*:"') do (
  3.     echo,%%i
  4. )
  5. pause
复制代码
这样可以吗
1

评分人数

TOP

不行,要去掉后面的端口,我只所以把冒号用空格 隔开,就是想再循环一次,把第一列,也就是ip 拿出来,其他的端口信息,要过滤掉的。谢谢2楼

TOP

本帖最后由 raddison 于 2017-4-24 18:09 编辑

@echo off

set b=
set "replace= : "
set "search=:"

for /f "tokens=2" %%a in ('netstat -ano') do (
set "str=%%a"
  
SETLOCAL ENABLEDELAYEDEXPANSION
call set str=!str:%search%=%replace%!

for /f "tokens=1,2 delims=:" %%b in ("!str!") do (
  echo;%%b
  endlocal
)
  
)
我研究出来了。 但是现在还有最后一个问题,是怎么除重复,麻烦各位给 个好招!谢谢

TOP

回复 3# raddison


没有必要再循环一次
  1. @echo off
  2. for /f "tokens=2 delims=: " %%i in ('netstat -ano ^| findstr "\..*\..*\..*:"') do (
  3.     echo,%%i
  4. )
  5. pause
复制代码
去重的事情稍后再说

TOP

嗯,有道理,可以的,那就剩下去除的问题了。谢谢5楼

TOP

TOP

@echo off

set b=
set s=
set m=
set i=
set count =0

  


for /f "tokens=2"  %%i in ('tasklist /nh /fi "imagename eq QQ.exe"') do (
    set "SkipRow=%%i"
    goto oSkip
)



:DoSkip


echo %SkipRow%
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "tokens=4 delims=: " %%m in ('netstat -ano ^| findstr "\..*\..*\..*:"^|find "%SkipRow%"^|find /v  "LISTENING"') do (
   
      if not defined %%m set %%m=s & echo,%%m  
)
endlocal
我补充了下,这个已经很接近我的问题答案了。那最后如果仅仅输出IP总数呢? 该如何。? 谢谢7楼,非常感谢了!

TOP

回复 8# raddison


if not defined %%m set %%m=s & set /a count+=1
最后查看一下 count 的值就行了

TOP

感激! 搞定了,谢谢!

TOP

返回列表