use*_*786 23 cmd batch-file batch-processing
我正在编写一个应该将网络驱动器映射到字母的脚本Z,我正在使用该命令
net use z: \\path,问题是如果用户已经在使用这封信我将无法映射它,有什么办法吗?检查此驱动器的存在性(z)以及是否存在以卸载它并将其安装到另一个字母仍然使用z我的脚本所需的驱动器,这是安装的一部分,它应该在Z上驾驶.
Mic*_*elS 36
您可以检查驱动器是否已安装IF EXIST Z:\.这应该工作:
if exist z:\ (
net use z: /delete
)
net use z: \\path
Run Code Online (Sandbox Code Playgroud)
小智 5
我使用以下脚本位取消映射所有驱动器:
:: 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
)
Run Code Online (Sandbox Code Playgroud)
它有什么作用?让我们把它分开
FOR /F "tokens=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.
Run Code Online (Sandbox Code Playgroud)
然后将此输出通过管道传送到查找“\\”的 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
Run Code Online (Sandbox Code Playgroud)
NET USE /D 将删除所选映射的驱动器映射