我有一个脚本,可以在工作中更改我的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)。 有什么建议吗?
答案 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。