Batch/CMD 在 OpenVPN 命令行后停止

Batch/CMD stops after OpenVPN command line

我正在尝试使用 OpenVPN 创建一个自动连接和断开文件,除此之外,将我的 WiFi 适配器 DNS 设置为 0.0.0.0(因为 DNS 泄漏)并恢复正常。

这是我当前的代码:

@echo off
SETLOCAL EnableExtensions
set EXE=openvpn-gui.exe
FOR /F %%x IN ('tasklist /NH /FI "IMAGENAME eq %EXE%"') DO IF %%x == %EXE% goto NOT
goto RUNS

:NOT
taskkill /im openvpn-gui.exe /f
taskkill /im openvpn.exe /f
netsh interface IPv4 set dnsserver "WiFi" dhcp
ipconfig /flushdns
exit

:RUNS
cd "C:\Program Files\OpenVPN\bin"
openvpn-gui.exe --connect "vpn-connection-file.ovpn" 

netsh interface IPv4 set dnsserver "WiFi" static 0.0.0.0 both
ipconfig /flushdns
exit

我的代码的第一行检查 openVPN 是否 运行,如果是,转到 运行,否则转到 NOT。

NOT 正在结束 OpenVPN 并将 DNS 恢复正常。

运行 正在打开 OpenVPN 并建立到我的配置文件的连接。

但是,在这一行之后:

openvpn-gui.exe --connect "vpn-connection-file.ovpn" 

CMD 不会继续执行其余代码。它刚刚停止,白色的 space 条在闪烁。 (无法输入任何密钥或其他任何内容。) 检查其余代码是否已执行是否定的。

有人知道这是怎么回事吗?

CMD 等待 openvpn-gui.exe 结束。试试 start

start openvpn-gui.exe --connect "vpn-connection-file.ovpn"