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

[文本处理] [已解决]批处理如何获取网络接口名称/网络连接名称

[复制链接]
发表于 2015-5-19 14:37:27 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-8-9 10:04 编辑

教我怎么过滤(批处理命令find)这段文本,谢谢!
小弟,不懂BAT,求助大神帮助过滤拆分这段文本,谢谢!

我用“netsh interface show interface >d:\network.txt”

在输出文本中得到:

管理员状态     状态           类型             接口名称
------------------------------------------------------------------------
已启用            已连接            专用               本地连接
已禁用            已断开连接          专用               无线网络连接 2
已启用            已连接            专用               无线网络连接


————但,我只想在输出文本中仅仅保存几个接口名称即可,即分行输出:
本地连接
无线网络连接 2
无线网络连接


——————看似简单,但我实在弄不来,谢谢大神援手了!

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2015-5-19 14:41:45 | 显示全部楼层
本帖最后由 yangfengoo 于 2015-5-19 17:51 编辑
  1. >d:\network.txt (for /f "skip=2 tokens=3* delims= " %%a in ('netsh interface show interface') do echo,%%b)
复制代码
发表于 2015-5-19 15:11:31 | 显示全部楼层
  1. @(for /f "tokens=3*" %%a in ('netsh interface show interface^|more +2') do @echo,%%b)>"d:\network.txt"
复制代码
发表于 2015-5-19 15:29:04 | 显示全部楼层
回复 2# yangfengoo


    “无线网络连接 2”有空格,tokens=4是不对的
发表于 2015-5-19 18:09:18 | 显示全部楼层
pcl_test 发表于 2015-5-19 15:11



    netsh interface show interface>mac-win7.txt
netsh interface show interface>mac-xp.txt
  1. @(for /f "tokens=3*" %%a in ('netsh interface show interface^|more +2') do @echo,%%b)
复制代码
这个只能在win7系统下显示名称。。
xp系统下,不能显示?

如何弄成通用xp和win7系统的代码?

mac-win7.txt

201 Bytes, 下载次数: 9

mac-xp.txt

382 Bytes, 下载次数: 5

 楼主| 发表于 2015-5-19 19:03:49 | 显示全部楼层
本帖最后由 locoman 于 2015-5-19 19:09 编辑

各位大神真热心,谢谢帮助。
以上各位写的代码都能有过滤成果,但是,还是有点没有完全达到标准要求:
各位代码输出的结果是:

D:\>echo,本地连接
本地连接

D:\>echo,无线网络连接
无线网络连接


----------------------
而我要的是,仅仅保留真实的接口名称,其余任何多余都不能要的,这样才方便二次使用。而各位的代码输出结果既有多余的部分,而且还有空行。我仅仅需要这样:谢谢再帮帮优化:-------------
本地连接
无线网络连接
 楼主| 发表于 2015-5-19 19:21:24 | 显示全部楼层
本帖最后由 locoman 于 2015-5-19 19:22 编辑
pcl_test 发表于 2015-5-19 15:11


@(for /f "tokens=3*" %%a in ('netsh interface show interface^|more +2') do @echo,%%b)>"d:\network.txt"

这段代码,输出是标准要求的。
谢谢,再多找几个不同的系统测试后结贴。
发表于 2015-5-19 19:48:22 | 显示全部楼层
回复 5# ygqiang
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('netsh interface show interface^|more +3') do (
  3. set "str=%%a"
  4. for /f "tokens=*" %%b in ("!str:~46!") do echo,%%b
  5. )
  6. pause
复制代码
发表于 2015-5-19 23:32:50 | 显示全部楼层
回复  ygqiang
pcl_test 发表于 2015-5-19 19:48



    xp和win7系统都测试了。。。

xp系统下显示结果,还是有点小问题。。。
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('netsh interface show interface^|more +3') do (
  3. set "str=%%a"
  4. for /f "tokens=*" %%b in ("!str:~46!") do echo,%%b
  5. )
  6. pause
复制代码
00.JPG
发表于 2015-5-19 23:44:47 | 显示全部楼层
本帖最后由 pcl_test 于 2015-5-19 23:48 编辑

回复 9# ygqiang

如果你所说的小问题是不想显示“环回”和“内部”,那么改为('netsh interface show interface^|find "连接"')
发表于 2015-5-19 23:56:15 | 显示全部楼层
回复  ygqiang

如果你所说的小问题是不想显示“环回”和“内部”,那么改为('netsh interface show int ...
pcl_test 发表于 2015-5-19 23:44



    多谢。。好用了。。。
 楼主| 发表于 2015-5-20 10:04:19 | 显示全部楼层
本帖最后由 locoman 于 2015-5-20 10:19 编辑

测试情况汇报:
一、
@(for /f "tokens=3*" %%a in ('netsh interface show interface^|more +2') do @echo,%%b)>"d:\network.txt"

1、在WIN7下测试正常
2、在WINXP测试不正常:
——该机器有两张有线网卡,网卡连接名分别为“内网”、“外网”。实际测试输出文本显示为:
输出的文本内容是空的,没有任何东西

二、
@echo off & setlocal enabledelayedexpansion
for /f "delims=" %%a in ('netsh interface show interface^|find "连接"') do (
set "str=%%a"
for /f "tokens=*" %%b in ("!str:~46!") do echo,%%b
)
pause

1、在WIN7下测试正常。
2、在WINXP下测试不正常:
——该机器有两张有线网卡,网卡连接名分别为“内网”、“外网”。实际测试输出文本显示为:
本地连接
请按任意键继续. . .

三、
@echo off & setlocal enabledelayedexpansion
for /f "delims=" %%a in ('netsh interface show interface^|more +3') do (
set "str=%%a"
for /f "tokens=*" %%b in ("!str:~46!") do echo,%%b
)
pause

1、在WIN7下测试正常。
2、在WINXP下测试不正常:
——该机器有两张有线网卡,网卡连接名分别为“内网”、“外网”。实际测试输出文本显示为:
内网
本地连接
外网
环回
内部
请按任意键继续. . .
-------------
需特别注意的是:该机器只有两张有线网卡,名称为“内网”、“外网”,怎么多了一个“本地连接”呢?——————


另:
------如果你所说的小问题是不想显示“环回”和“内部”,那么改为('netsh interface show interface^|find "连接"')----

————————
这样也是不可行的,上面的实例就说明问题了:客户机已将网卡名称修改为自己特有的名称:“内网”、“外网”。



——————呵呵,一个看似简单的问题,还有这么多的名堂,有劳各位大神了!!
发表于 2015-5-20 10:22:00 | 显示全部楼层
本帖最后由 pcl_test 于 2015-5-21 17:50 编辑

回复 12# locoman
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('netsh interface show interface^|findstr /rv "环回 内部"^|more +3') do (
  3. set "str=%%a"
  4. for /f "tokens=*" %%b in ("!str:~46!") do echo,%%b
  5. )
  6. pause
复制代码
 楼主| 发表于 2015-5-21 14:39:05 | 显示全部楼层
回复  locoman
pcl_test 发表于 2015-5-20 10:22


13楼的代码测试情况汇报:

1、在WIN7中测试正常。

2、在WINXP中测试不正常:
该机实际上只有两张网卡,分别命名为“内网”、“外网”。测试输出的文件显示为:
内网
本地连接
外网
环回
内部
发表于 2015-5-21 14:44:19 | 显示全部楼层
本帖最后由 pcl_test 于 2015-5-21 17:55 编辑

回复 14# locoman
xp   为何改名了还有本地连接???
1、命令提示符里运行该命令netsh interface show interface,截图发上来
2、右键网络邻居,属性,截图发上来
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 06:58 , Processed in 0.043375 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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