我想设置可以连接网络驱动器的脚本:
net use v: /delete || EXIT /B 1
net use v: "\\vmware-hostservername\share Folder"
我需要涵盖两种情况。
我无法将它放到窗口启动中,因为在运行脚本之前需要断开连接并且需要完成映射,因此它确保驱动器可用(而不是断开连接)。
重启PC后提供的脚本无效,因为v:不存在。它需要一些修改,如
if exists V: net use v: /delete || EXIT /B 1
我不太熟悉上面psedocode的批处理语法。
答案 0 :(得分:3)
只检查映射是否存在
net use v: && (net use v: /delete /Y || exit /b 1)
执行net use v:
以显示驱动器的信息。然后它使用条件执行运算符&&
,即,如果前一个命令成功,则执行下一个命令。
如果驱动器存在,那么它只是尝试删除映射,在这种情况下,使用条件执行操作符||
(如果前一个命令失败,则执行下一个命令)。
答案 1 :(得分:1)
<强> TL; DR:强>
以下将卸载驱动器...
awk not found. Using previously generated mylib c files in C:/Anaconda2/Whisker
Tracking/generated.
...
-- Could NOT find BISON (missing: BISON_EXECUTABLE)
Bison not found. Using previously generated parameter parser.
-- Found unsuitable Qt version "5.6.2" from C:/Anaconda2/Library/bin/qmake.exe
...
-- Generating done
-- Build files have been written to: C:/Anaconda2/WhiskerTracking/build
而不在控制台上打印任何内容并将I
保持为0。
errorlevel
<强>详情:强>
虽然接受的答案是正确的,但如果未安装驱动器,则会引发net use I: /delete /Y > NUL 2>&1 || dir > NUL
。由于我只想检查和卸载现有驱动器而不更改错误级别,我想出了上面的命令。
errorlevel
尝试立即卸载驱动器net use I: /delete /Y
,而I
将输出重定向到> NUL 2>&1
设备(将其隐藏在控制台中)。
如果卸载失败(未检测到挂载),则条件执行NUL
开始,||
将当前目录内容打印到dir > NUL
设备(在控制台上再次打印)。这会将errorlevel重置为0。
最终结果是控制台上没有打印任何内容,错误级别保持为0。