批处理文件以启用/禁用网络适配器

时间:2016-03-18 12:59:23

标签: windows batch-file cmd

我有一个脚本,可以在工作中更改我的LAN适配器静态/ DHCP工作正常。但是,我们确实需要在网络上使用命令时偶尔禁用我们的网络适配器(如果在不同的网络上发生冲突)。 这是我为启用/禁用命令所获得的代码。

:2
@echo off
netsh wlan show networks | FIND "Wireless network connection" /I /C >NUL 2>NUL
IF %errorlevel% equ 1 (netsh interface set interface "Wireless network connection" DISABLED)
IF %errorlevel% equ 0 (netsh interface set interface "Wireless network connection" ENABLED)
exit /b

当我单独运行netsh命令时,请执行正确,这意味着我的if语句存在问题。

启用网络适配器时:

netsh wlan show networks | FIND "Wireless network connection" /I /C
1

禁用网络适配器时:

netsh wlan show networks | FIND "Wireless network connection" /I /C
0

运行整个代码时,每次运行(无论无线网络适配器的状态如何,都返回1)。 有什么建议吗?

2 个答案:

答案 0 :(得分:0)

echo Errorlevel was %errorlevel%
IF %errorlevel% equ 1 (
 echo was enabled
 netsh interface set interface "Wireless network connection" DISABLED
) else (
 echo was disabled
 IF %errorlevel% equ 0 (
   netsh interface set interface "Wireless network connection" ENABLED
 )
)

正如您目前所拥有的那样,第二个errorlevel将解释第一个netsh的结果(如果有效)。

答案 1 :(得分:0)

不要混淆命令输出和%errorlevel%

C:> echo yes|find "yes" /c
1

C:> echo %errorlevel%
0

C:> echo yes|find "no" /c
0

C:> echo %errorlevel%
1
当最后一个命令(%errorlevel%)不成功时,

find被设置,而find /c返回结果计数。没有发现意味着find /c会返回0%errorlevel%会返回1。