检查断开连接的共享目录中的文件时,请避免长时间延迟

时间:2016-03-01 15:28:45

标签: windows batch-file

检查共享目录中是否存在文件时

<ul style="display: inline-block;">
     <li class="sub-info2" style="width: auto">
          <ul>
               <li class="text tablet">

如果共享目录断开连接,我会遇到很长的延迟。

我需要一种更快的方式来执行此检查。

我尝试了几种替代方案

if exist \\10.0.0.10\disk\file echo yes

但所有这些都在一次不可接受的长时间延迟后失败

有没有更快(比如不到1秒)的方式?

或者是否有任何可以更改此超时的网络配置参数?

编辑以供澄清问题不在于重新连接到特定的共享文件夹。问题是如果共享文件夹中存在文件,则无需等待很长时间的延迟即可识别。

这是一个bat文件,它收集来自用户定义的许多不同来源的信息,其中一些可以(并且最终经常是)共享文件夹中的文件。有些用户可能会配置许多可能的来源,其中一些可能在运行蝙蝠时不可用。因此,这些位置将被忽略。但我不希望它影响整个过程的整体表现。

2 个答案:

答案 0 :(得分:1)

您可以尝试使用ping检查服务器是否已启动:

ping 10.0.0.10 -n 1 -w 100

使用%ERRORLEVEL%检查结果,0表示成功,1表示失败。

答案 1 :(得分:1)

我想您可以更改您的位置,因此可能还有一个ip 10.0.0.10,但它不是正确的设备。

您可以先检查net use输出的状态(findstr也可以在这里使用)

net use | awk '/((Not)|(Connected)).*10.0.0.10\\disk:/{print $1}'

如果失败,您需要检查是否可以重新连接。

ping -n 1 10.0.0.10可以提供帮助,但它并不能说明它是否是正确的设备。
您可以根据预期值检查10.0.0.10的MAC,但是您应该先执行 dummy ping,以便从arp获得可靠的结果。

arp -a 10.0.0.10 | findstr "12-34-56-12-34-56"

如果成功,则可以重新连接

net use \\10.0.0.1\disk