2

我正在尝试找到一种方法来从网络驱动器中检索用户映射的驱动器号。我在这里阅读了一些帖子,但它们似乎都围绕映射/取消映射驱动器,而我只需要知道用户将该网络驱动器映射到的驱动器。

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

Net Use \\servershare\file\sharename\shared

只是给出“命令成功完成”,我需要'S:'返回。

如何获取为特定网络驱动器返回的驱动器号?

4

1 回答 1

1

像这样的批处理文件将起作用:

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

笔记:

  • 用你想要的任何代码替换,因为驱动器号是已知的,可能是一个由andECHO Drive letter is %%D包围的多行代码块。替换为您要查找的共享。()\\SERVER\SHARE
  • 如果没有映射到共享的驱动器,则后面的语句DO将永远不会执行。如果有多个驱动器映射到共享,它将为每个驱动器执行一次。
  • ^| find ":"如果您确定在没有驱动器号的情况下不会有任何连接(例如,使用创建而net use \\SERVER\SHARE不是net use S: \\SERVER\SHAREor net use * \\SERVER\SHARE) ,您可以跳过第一个管道。
  • /I如果您确定与使用不同字符大小写的共享没有任何连接,则可以跳过此开关。
  • 这两个@字符防止命令在控制台上回显。另一种方法是从批处理文件开始@ECHO OFF'
  • 如果您直接在命令行上而不是从批处理文件中运行它,请将两者替换%%D%D.
于 2016-02-17T19:36:41.837 回答