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