我有这个批处理文件,可以在连接到vpn时自动执行此过程。它在vpn连接后需要执行一些其他步骤,因此我编写了一个循环,不断检查是否存在vpn连接。但即使vpn连接,它也永远不会脱离循环。请帮忙。
这是相关的代码
"%ProgramFiles(x86)%\Cisco Systems\VPN Client\ipsecdialer.exe" -c -sd -user %username% -pwd %vpn_password% "lifeline-ceacc.elluciancloud.com"
:loop
set length_of_file = 0
("%ProgramFiles(x86)%\Cisco Systems\VPN Client\vpnclient.exe" stat) >_vpnstat.txt
PING -n 5 127.0.0.1>nul
set /p vpnstat=<_vpnstat.txt
call :strlen length_of_file vpnstat
echo %length_of_file%
::del _vpnstat.txt::
IF %length_of_file% LSS 46 goto :loop
::doing some other stuff here::
goto :eof
:strlen <resultVar> <stringVar>
(
setlocal EnableDelayedExpansion
set "s=!%~2!#"
set "len=0"
for %%P in (4096 2048 1024 512 256 128 64 32 16 8 4 2 1) do (
if "!s:~%%P,1!" NEQ "" (
set /a "len+=%%P"
set "s=!s:~%%P!"
)
)
)
(
endlocal
set "%~1=%len%"
exit /b
)
答案 0 :(得分:0)
set /p vpnstat=<_vpnstat.txt
IF "%vpnstat:~46%" equ "" goto loop
会更容易......