Board logo

标题: [文本处理] BAT如何显示文本,然后选择某行进行处理? [打印本页]

作者: newswan    时间: 2014-3-24 19:18     标题: BAT如何显示文本,然后选择某行进行处理?

win8没有合并网络名,也没发删除已经记住的网络
可以用netsh命令删除
先用查看记住的网络名
netsh wlan show profile
然后删除某个网络名
netsh wlan del profile name=“xxxx”

用批处理文件,显示记住的网络名,然后选择一个网络名,然后删除。
for /f "usebackq delims=: tokens=2" %%i in (`netsh wlan show profile`) do (set /a num+=1&set xx=%%i& echo !num! !xx!)
问题是:删除的代码怎么写?

谢谢
作者: 522235677    时间: 2014-3-24 19:51

  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "skip=3 tokens=2 delims=: " %%a in ('netsh wlan show profile') do (set /a n+=1&echo !n!.%%a&set n!n!=%%a)
  3. set /p in=输入编号:
  4. call netsh wlan del profile name="%%n%in%%%"
  5. pause
复制代码
1.2G
2.Public
输入编号:1
已从接口“无线网络连接”中删除配置文件“2G”。
请按任意键继续. . .
作者: newswan    时间: 2014-3-24 21:24

本帖最后由 newswan 于 2014-3-24 21:40 编辑

我执行了,改了下面2处:
1、"skip=3 tokens=2 delims=:"
去掉了:后的空格
2、call netsh wlan show profile name=!n%in%!
这里用%%n%in%%%,!n%in%!,!!n%in%!!都行,%n%in%%不行

n1= TP-LINK_EC9FE2
n2= TP-LINK_EC9FE2 2
还有,变量前面有个空格,怎么去掉?profile可能带有空格,只能去掉前面的空格。
作者: 522235677    时间: 2014-3-24 21:33

本帖最后由 522235677 于 2014-3-24 21:41 编辑

回复 3# newswan
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "skip=3 tokens=2,* delims=: " %%a in (1.txt) do (
  3. set /a n+=1
  4. echo !n!.%%a %%b
  5. if "%%b"=="" (set n!n!=%%a) else (set n!n!=%%a %%b)
  6. )
  7. set /p in=输入编号:
  8. call echo netsh wlan del profile name="%%n%in%%%"
  9. pause
复制代码

作者: newswan    时间: 2014-3-24 21:42

本帖最后由 newswan 于 2014-3-24 21:53 编辑

ok
谢谢!!正确了
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "skip=9 tokens=4,* delims=: " %%a in ('netsh wlan show profile') do (
  3. set /a n+=1
  4. echo !n!.%%a %%b
  5. if "%%b"=="" (set n!n!=%%a) else (set n!n!=%%a %%b)
  6. )
  7. set /p in=输入编号:
  8. call netsh wlan show profile name="%%n%in%%%"
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2