批量检查是否存在映射的网络驱动器

时间:2014-12-02 10:18:17

标签: batch-file cmd batch-processing

我目前正在编写一个应该将网络驱动器映射到字母Z的脚本,我正在使用该命令 net use z: \\path,问题是,如果用户已经使用了这封信,我将无法映射它,有没有办法检查此驱动器的存在性(z)以及是否存在要卸载它并将其挂载到另一个字母,仍然使用我的脚本所需的z驱动器,这是安装的一部分,它应该在Z驱动器上。

6 个答案:

答案 0 :(得分:31)

您可以IF EXIST Z:\检查驱动器是否已装入。这应该有效:

if exist z:\ (
    net use z: /delete
)
net use z: \\path

答案 1 :(得分:4)

另一种可能的方式是:

net use Z:
if %errorlevel% EQU 0 net use Z: /delete
net use Z: \\path

答案 2 :(得分:3)

我使用以下scriptbit取消映射所有驱动器:

:: First unmap all network drives
FOR /F "tokens=1,2,3" %%G IN ('net use^| Find "\\"') DO (
  ECHO.Unmapping %%I from drive letter %%H
  NET USE %%H /D > NUL
)

它做什么?让我们分开吧

FOR / F"令牌= 1,2,3" %% G IN()DO() - >迭代在()和第一个,第二个和第三个单词之间定义的集合(任何空格用作分隔符)将分别作为%% G,%% H和%% I使用。

(' ...')将运行命令...并将结果传递给FOR循环

net use将输出如下内容:

New connections will be remembered.


Status       Local     Remote                    Network

-------------------------------------------------------------------------------
OK           M:        \\diskstation\music       Microsoft Windows Network
OK           P:        \\diskstation\home        Microsoft Windows Network
OK           V:        \\diskstation\video       Microsoft Windows Network
OK           X:        \\diskstation\photo       Microsoft Windows Network
The command completed successfully.

然后将此输出传送到Find.exe(相当于grep的窗口),查找" \\"。

管道符号|使用^进行转义,因此cmd不会直接执行它。输出将是:

OK           M:        \\diskstation\music       Microsoft Windows Network
OK           P:        \\diskstation\home        Microsoft Windows Network
OK           V:        \\diskstation\video       Microsoft Windows Network
OK           X:        \\diskstation\photo       Microsoft Windows Network

NET USE / D将删除所选映射的驱动器映射

答案 3 :(得分:2)

我的要求与OP的要求略有不同:我需要将网络驱动器映射到始终相同的路径,但前提是该路径不存在

if not exist z:\ (
    net use z: \\ComputerName\ShareName
)

答案 4 :(得分:0)

要回答原始问题,您可以检查Z是否已经映射,然后将其重新映射到不同的驱动器号(例如y :),然后将z映射到新路径。

if exist z:\ (
    for /F "tokens=1,2*" %%G in ('net use^|Find "\\"^|Find /I "z:"')  do ( net use y: %%H )
    net use z: /delete
)
net use z: \\path

答案 5 :(得分:0)

您可以批量编写如下代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="left_menu">

        <li><a id="tab_wireless" href="#">System Status</a></li>
        <li><a id="tab_system" href="#">Network Configuration</a></li>

  <li><a id="radio_list" href="#">Radio List</a></li>
  <li><a id="search" href="#">Search</a></li>
</ul>

如果存在@echo off net use V: >nul 2>&1 if %errorlevel% equ 0 goto unmap 在Windows 10上不起作用,并且V:\还会显示其他信息,我现在使用net use取消了它。