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

时间:2016-02-17 10:12:27

标签: batch-file cmd net-use

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

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

Net Use \\servershare\file\sharename\shared

刚刚给出"命令成功完成",我需要' S:'返回。

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

1 个答案:

答案 0 :(得分:0)

像这样的批处理文件可以工作:

 regex r1("^[\s]*{[\s]*\n"); //Space followed by '{' then followed by spaces and '\n'
 regex r2("^[\s]*{[\s]*\/\/.*\n") // Space followed by '{' then by  '//' and '\n'

注意:

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