Batch file net如果驱动器存在,请使用批删除
我想要安装脚本,它可以像这样连接网络驱动器:Batch file net如果驱动器存在,请使用批删除,batch-file,net-use,Batch File,Net Use,我想要安装脚本,它可以像这样连接网络驱动器: net use v: /delete || EXIT /B 1 net use v: "\\vmware-hostservername\share Folder" 我需要介绍两种情况 重新启动电脑后运行测试(无光盘v:可用) 反复运行测试。光盘v:已存在,需要删除并重新映射 我无法将其置于窗口启动,因为断开连接会超时,并且在运行脚本之前需要完成映射,因此它确保驱动器可用(并且不会断开连接) 由于v:不存在,重新启动电脑后提供的纸条不起作用。它需要
net use v: /delete || EXIT /B 1
net use v: "\\vmware-hostservername\share Folder"
我需要介绍两种情况
if exists V: net use v: /delete || EXIT /B 1
我不太熟悉上述psedocode的批处理语法。只需检查映射是否存在
net use v: && (net use v: /delete /Y || exit /b 1)
它执行net use v:
来显示驱动器的信息。然后它使用条件执行操作符&&
,即,如果前一个命令成功,则执行下一个命令
如果驱动器存在,那么它只是尝试删除映射,在这种情况下,使用条件执行操作符
|
(如果前一个命令失败,则执行下一个命令)。TL;医生:
以下操作将卸载驱动器I
,而无需在控制台上打印任何内容并将errorlevel
保持在0
net use I: /delete /Y > NUL 2>&1 || dir > NUL
详细信息:
虽然接受的答案是正确的,但如果未安装驱动器,则会引发errorlevel
。因为我只想检查和卸载现有的驱动器而不改变errorlevel,所以我想出了上面的命令
net use I:/delete/Y
尝试立即卸载驱动器I
,而>NUL 2>&1
将输出重定向到NUL
设备(从控制台隐藏)
如果卸载失败(未检测到装载),条件执行将从dir>NUL
打印当前目录内容到NUL
设备的位置开始(再次在控制台上不打印任何内容)。这会将errorlevel重置为0
最终的结果是控制台上不会打印任何内容,并且errorlevel保持为0
来源:
谢谢你。
/Y
的目的是什么?我看不出这是一个有任何意义的标志。我已经用完整的文档更新了答案/Y
隐式关闭所有打开的资源。是否确实需要/Y
?
Disconnect from a share and close all resources (undocumented)
NET USE [driveletter:] /DELETE /Y