我想在批处理脚本中检查我是否连接到 Cisco VPN。我目前正在尝试的是:
.\vpnclient.exe | Findstr 'Connected'
这确实有效:调用
vpnclient.exe
打开 Cisco 的 cli 工具,然后 Findstr
命令正确运行。我无法开始工作的是:如何以编程方式退出该工具并继续?然后我可以手动退出该工具,但这并不是真正的自动化理念。
我尝试过简单地将
exit
放在下一行,或 echo exit | vpnclient.exe | Findstr 'Connected'
、.\vpnclient.exe | Findstr 'Connected' | exit
、exit | .\vpnclient.exe | Findstr 'Connected'
。
这些都没有退出该工具,脚本的执行只是停止。有时,我什至无法再手动退出,必须打开一个新窗口。
stackoverflow 上的其他问题没有帮助,似乎没有人尝试以编程方式退出并继续。
如何以编程方式退出 Cisco 的 cli 工具或以其他方式检查连接状态,以便我可以根据连接状态继续执行?
编辑:
(echo Y|vpnclient.exe) | Findstr "Connected"
带我进入cli工具,但我仍然必须通过ctrl + c手动退出它,这是不可用的。我觉得思科的工具在这里有一些奇怪的行为,还是我错了?
我之前找到的网站和线程都建议只需调用
.\vpnclient.exe
即可获取连接状态。这导致了问题中描述的行为。
事实证明,VPN 客户端有一个名为
status
的命令,它的作用正是人们所期望的。所以,有效的是:
.\vpnclient.exe status | Findstr "Connected"
echo %errorlevel%
就这么简单。我不知道为什么不经常推荐这样做。