0

我想要可以像这样连接网络驱动器的安装脚本:

net use v: /delete || EXIT /B 1
net use v: "\\vmware-hostservername\share Folder" 

我需要涵盖两种情况。

  1. 重新启动 PC 后运行测试(无光盘 v:可用)
  2. 反复运行测试。Disc v:已存在,需要删除并重新映射。

我不能把它放到窗口启动中,因为断开连接有超时,并且在运行脚本之前需要完成映射,所以它确保驱动器可用(而不是断开连接)。

提供的脚本在重新启动 PC 后不起作用,因为 v: 不存在。它需要一些修改,例如

if exists V: net use v: /delete || EXIT /B 1

我对上述psedocode的批处理语法不太熟悉。

4

2 回答 2

5

只需检查映射是否存在

net use v: && (net use v: /delete /Y || exit /b 1)

它执行net use v:以显示驱动器的信息。然后它使用条件执行运算符&&,即如果上一个命令成功,则执行下一个命令。

如果驱动器存在,那么它只是尝试删除映射,在这种情况下使用条件执行运算符||(如果前一个命令失败,则执行下一个命令)。

于 2015-10-05T06:41:00.687 回答
4

TL;博士:

以下将卸载驱动器I而不在控制台上打印任何内容并保持errorlevel为 0。

net use I: /delete /Y > NUL 2>&1 || dir > NUL

细节:

虽然接受的答案是正确的,但它会引发errorlevel驱动器未安装的情况。由于我只想检查和卸载现有驱动器而不更改错误级别,所以我想出了上面的命令。

net use I: /delete /Y尝试立即卸载驱动器I,同时> NUL 2>&1将输出重定向到NUL设备(从控制台隐藏它)。

如果卸载失败(未检测到安装),则||开始条件执行,将dir > NUL当前目录内容打印到NUL设备(再次在控制台上不打印任何内容)。这会将错误级别重置为 0。

最终结果是控制台上没有打印任何内容,并且错误级别保持在 0。

来源: https ://ss64.com/nt/net-use.html

Disconnect from a share and close all resources (undocumented)
 NET USE [driveletter:] /DELETE /Y
于 2017-08-24T18:09:11.783 回答