Batch file 从网络驱动器远程返回用户映射的驱动器号

Batch file 从网络驱动器远程返回用户映射的驱动器号,batch-file,cmd,net-use,Batch File,Cmd,Net Use,我正试图找到一种从网络驱动器中检索用户映射的驱动器号的方法。我在这里读过几篇文章,但它们似乎都是关于映射/取消映射驱动器的,而我只需要知道用户将网络驱动器映射到哪个驱动器 在命令提示符下,我使用: 净使用量: 例如,将给我网络驱动器的名称(\servershare\file\sharename\shared),但是 Net Use \\servershare\file\sharename\shared 只需给出“命令已成功完成”,我需要的是“返回” 如何返回特定网络驱动器的驱动器盘符?这样的批

我正试图找到一种从网络驱动器中检索用户映射的驱动器号的方法。我在这里读过几篇文章,但它们似乎都是关于映射/取消映射驱动器的,而我只需要知道用户将网络驱动器映射到哪个驱动器

在命令提示符下,我使用: 净使用量: 例如,将给我网络驱动器的名称(\servershare\file\sharename\shared),但是

Net Use \\servershare\file\sharename\shared
只需给出“命令已成功完成”,我需要的是“返回”


如何返回特定网络驱动器的驱动器盘符?

这样的批处理文件可以:

@FOR /F "tokens=2" %%D IN ('net use ^| find ":" ^| find /I "\\SERVER\SHARE"') DO @ECHO Drive letter is %%D
注:

  • 回显驱动器号%%D
    替换为已知驱动器号后所需的任何代码,可能是由
    包围的多行代码块。将
    \\SERVER\SHARE
    替换为您要查找的共享
  • 如果没有映射到共享的驱动器,
    DO
    之后的语句将永远不会执行。如果有多个驱动器映射到共享,则它将为每个驱动器执行一次
  • 您可以跳过第一个
    ^ | find:“
    管道,如果您确定没有驱动器号就不会有任何连接(例如,使用
    net use\\SERVER\SHARE
    创建,而不是
    net use S:\\SERVER\SHARE
    net use*\\SERVER\SHARE
  • 如果您确定不会有任何使用不同大小写的共享连接,则可以跳过
    /I
    开关
  • 两个
    @
    字符防止命令在控制台上回响。另一种方法是以
    @ECHO OFF'
    开始批处理文件
  • 如果直接在命令行而不是批处理文件中运行此操作,请将两个
    %%D
    替换为
    %D

阅读
网络使用/help
:当使用
网络使用
而没有选项时,它会列出计算机的连接。网络使用| findstr/r“^..[A-Z]:“| findstr”personal”-这可以工作并给出特定驱动器的驱动器号。太棒了。非常感谢。这是一种享受。只是想一想,将
SET“SHARE=\\servershare\file\sharename\shared”
更改为
SET“SHARE=\\servershare\shared”
,因为您的桌面管理员必须键入一个长的共享名。较新的操作系统版本确实支持“深度路径”映射,可能建议将其整理一下。。。您的国籍可能不同:)驱动器号不是在
%%E
中吗?至少对我来说是这样。我安装了一个网络驱动器
//my/webdav/share
作为
Z:
。我为
@echo%%D
获得
//my/webdav/share
,为
@echo%%E
获得
Z