2017-02-15 136 views
0

考虑我想通过脚本(批处理)映射带有共享网络驱动器的驱动器,我需要映射 例如:T:\\192.168.1.2\network但是当它已经映射,例如:T: ->\\192.168.1.2\network我不想再映射它,如何检查驱动器是否映射到特定的网络共享驱动器

我试过下面的片段,它只是第一次映射,当共享驱动器发生变化时,它不会重新映射,任何人都可以告诉代码片段中出了什么问题,以及如何解决。

问题是,当我改变从\\192.168.1.2\network\\192.168.1.6\network如果T:\Jboss映射它只是检查,它不会做断开与\\192.168.1.6\network重新映射,还有一件事是既\\192.168.1.2\network以及\\192.168.1.6\network具有相同direcotry Jboss

if exist T:\Jboss (
echo already T:\Jboss exists 
) 
if not exist T:\Jboss (
echo disconnect T: 
net use T: /delete 
echo connected T: to network 
net use T: \\192.168.1.2\network\persistent:no 
) 

回答

0

明确检查,如果某个驱动器盘符映射到某个网络资源:
执行net use,过滤器的盘符,再筛选线为资源,将输出重定向到nul。 (不过如此,检查是否有文件或目录也可能存在于其他资源)

net use |find " T: "|find " \\192.168.1.2\network ">nul && (
    echo already connected 
) || (
    echo not yet connected 
) 

&&执行为“如果前面的命令是成功的,那么......”
||执行为“如果前面的命令失败了,那么......”

+0

它的工作谢谢 – Emman

0

net use T:也返回当前连接状态:

>>> net use T: 
Local name  T: 
Remote name  \\192.168.1.2\network 
Resource type  Disk 
Status   Connected 
# Opens   1 
# Connections  1 
The command completed successfully. 

可以过滤为Status值来获取连接状态:

net use T: | find "Status" | find "Connected" > nul 2>&1 || (
    net T: /DELETE 
    net use T: \\192.168.1.2\network 
) 
相关问题