@echo off
:: English comments as requested
:: Set connection details
set VPN_NAME="VNET-VPN"
set VPN_SERVER="0.0.0.0"
set USERNAME="User"
set PASSWORD="Pass"
set PSK="123456"

:: 1. Check if the profile exists, create if missing
powershell -Command "if (!(Get-VpnConnection -Name %VPN_NAME% -ErrorAction SilentlyContinue)) { Add-VpnConnection -Name %VPN_NAME% -ServerAddress %VPN_SERVER% -TunnelType L2tp -L2tpPsk %PSK% -Force }"

:: 2. Check current status
echo Checking VPN status...
rasdial | findstr /i /c:%VPN_NAME% >nul

:: 3. Logic: If connected -> Disconnect and Exit. If disconnected -> Connect and Exit.
if %errorlevel% equ 0 (
    echo.
    echo [ALREADY CONNECTED] VPN is already active.
    echo Disconnecting now...
    rasdial %VPN_NAME% /disconnect >nul
    echo.
    echo [SUCCESS] Disconnected. Closing in 3 seconds...
    timeout /t 3
    exit
) else (
    echo VPN is currently offline. Proceeding to connect...
    echo Connecting to %VPN_NAME%...
    rasdial %VPN_NAME% %USERNAME% %PASSWORD%
)

:: Final Check for connection attempt
if %errorlevel% neq 0 (
    echo.
    echo [ERROR] Connection failed.
    pause
) else (
    echo.
    echo [SUCCESS] Connected successfully!
    timeout /t 3
)
