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

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

本帖最后由 pcl_test 于 2016-8-9 10:04 编辑

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

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

在输出文本中得到:

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


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


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

评分人数

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

回复 22# locoman
没用XP很久;系统不同,有些命令确实是有区别的;试试用wmic nic get NetConnectionID,看看xp/win7显示效果是否一致

TOP

本帖最后由 locoman 于 2015-5-22 23:50 编辑
回复  locoman
pcl_test 发表于 2015-5-22 16:47


谢谢@pcl_test !谢谢您一直热心的、不愿其烦的研究、帮助!!

21楼这段代码,在WIN7和WINXP测试使用都能正常。

但是,这是使用的SYSTEMINFO命令,没有NETSH命令的效率高,运行时间要慢很多。

看来nertsh这个命令的鬼怪名堂多……不知是否对其有所突破……
是否可以去考虑问题:是不是WIN7和WINXP中的netsh命令本身有所不同,是否可以将WIN7的netsh命令拷贝到WINXP中运行看看

TOP

回复 20# locoman
  1. @for /f "tokens=1*" %%a in ('systeminfo^|find "连接名"') do @echo;%%b
  2. @pause
复制代码

TOP

回复  locoman
xp   为何改名了还有本地连接???
1、命令提示符里运行该命令netsh interface show int ...
pcl_test 发表于 2015-5-21 14:44


一直在WINXP中测试结果不正常的机器情况:
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

回复  locoman
ygqiang 发表于 2015-5-21 17:39


17楼测试汇报:
1、WIN7测试正常。
2.WINXP测试不正常:
内网
本地连接
外网

TOP

回复 17# ygqiang

findstr /v "环回 内部"原本就是排除显示这两项的,改为findstr /iv "环回 内部"或是findstr /rv "环回 内部"即可,那么就不需要再次验证了,可去掉if %%b NEQ 环回 if %%b NEQ 内部

TOP

回复 14# locoman
  1. @echo off & setlocal enabledelayedexpansion
  2. echo 获取网卡连接名 >nul 2>nul
  3. echo win7和xp系统,双网卡环境下,都好用 >nul 2>nul
  4. for /f "delims=" %%a in ('netsh interface show interface^|findstr /v "环回 内部"^|more +3') do (
  5. set "str=%%a"
  6. for /f "tokens=*" %%b in ("!str:~46!") do (
  7. if %%b NEQ 环回 if %%b NEQ 内部 echo,%%b
  8. )
  9. )
  10. pause >nul 2>nul
复制代码

TOP

sdfalklsdlkjdslfk

TOP

本帖最后由 pcl_test 于 2015-5-21 17:55 编辑

回复 14# locoman
xp   为何改名了还有本地连接???
1、命令提示符里运行该命令netsh interface show interface,截图发上来
2、右键网络邻居,属性,截图发上来

TOP

回复  locoman
pcl_test 发表于 2015-5-20 10:22


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

1、在WIN7中测试正常。

2、在WINXP中测试不正常:
该机实际上只有两张网卡,分别命名为“内网”、“外网”。测试输出的文件显示为:
内网
本地连接
外网
环回
内部

TOP

本帖最后由 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
复制代码

TOP

本帖最后由 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 "连接"')----

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



——————呵呵,一个看似简单的问题,还有这么多的名堂,有劳各位大神了!!

TOP

回复  ygqiang

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



    多谢。。好用了。。。

TOP

本帖最后由 pcl_test 于 2015-5-19 23:48 编辑

回复 9# ygqiang

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

TOP

返回列表