Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file net如果驱动器存在,请使用批删除_Batch File_Net Use - Fatal编程技术网

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" 
我需要介绍两种情况

  • 重新启动电脑后运行测试(无光盘v:可用)
  • 反复运行测试。光盘v:已存在,需要删除并重新映射
  • 我无法将其置于窗口启动,因为断开连接会超时,并且在运行脚本之前需要完成映射,因此它确保驱动器可用(并且不会断开连接)

    由于v:不存在,重新启动电脑后提供的纸条不起作用。它需要一些修改,比如

    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