【问题标题】:How to create a batch file to map network drives after connected to VPN连接到 VPN 后如何创建批处理文件以映射网络驱动器
【发布时间】:2013-12-11 01:30:15
【问题描述】:

创建批处理文件 (.bat) 的最佳方法是什么,该批处理文件将在建立 Internet 连接后自动映射网络驱动器。批处理文件将保留在 Windows 启动文件夹中,并且仅在尚未映射网络驱动器时才映射它们。我尝试了以下方法:

:Start
ping -n 1 www.google.com

If %errorlevel% == 0 Goto :Start

If %errorlevel% == 1 Goto :Connected

:Connected

Net Use F:\\ Server\Folder /Persistent:No

ping 回复非常快,即使路径正确,Net use 命令也不会映射驱动器,如果我在 CMD 窗口中手动输入 net use 和路径,它将起作用。我需要它在 ping 回复后等待,然后映射网络驱动器,如果它们尚未映射,它也只映射网络驱动器。我意识到我所尝试的并没有解决“如果它们尚未映射,则仅映射网络驱动器”。我进行了一些广泛的搜索,但找不到这些问题的答案。将不胜感激逐步并易于遵循解决此问题的说明。

非常感谢。

【问题讨论】:

  • 你如何连接到 VPN ?大多数 VPN 客户端都可以在连接完成后执行脚本。你的批处理文件应该放在这里
  • 我想尝试使用批处理文件在本地完成这项任务。

标签: batch-file networking network-drive


【解决方案1】:

也许额外的“超时”会有所帮助?

更新

我使用 windows vpn 客户端。 要检查可用的连接,我制作这样的脚本 并等待 30 秒,然后通过 ping 进行检查。 我 ping 我的服务器,它只在 vpn 下可用。

@echo off
set myserver=192.168..
setlocal enabledelayedexpansion
rasdial FirstVPN /disconnect
rasdial SecondVPN /disconnect

echo ==== second vpn
start rasdial SecondVPN
timeout /T 30
for /f "Tokens=*" %%G in ('ping -n 1 %myserver% ^| FIND "TTL="') do set ans="%%G"
IF NOT [%ans%]==[] GOTO Connected

echo ==== first vpn
start rasdial FirstVPN
timeout /T 30
for /f "Tokens=*" %%G in ('ping -n 1 %myserver% ^| FIND "TTL="') do set ans="%%G"
IF [%ans%]==[] (exit)
:Connected
echo %ans%

【讨论】:

  • Timeout /T10 让它在时间用完后进入循环。
  • 我印象深刻!您不知道他的 VPN 客户端是什么,然后您发布了答案!这里有水晶球吗? :)
猜你喜欢
  • 2021-02-23
  • 1970-01-01
  • 1970-01-01
  • 2016-12-11
  • 1970-01-01
  • 2016-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多