【发布时间】:2020-06-05 06:26:17
【问题描述】:
问题: 我无法使用批处理文件识别网络共享映射到的驱动器号。
背景: 我们在工作中映射和使用大约十几个网络共享驱动器,批处理文件当前将驱动器映射到“常用”驱动器号。但我想知道它是否映射到任何字母(如果是,那个字母是什么),因为我们有超过 200 台使用这些映射驱动器的 PC,而且字母通常不同,所以再次将其映射到“通常”字母会导致重复的映射网络驱动器。
我可以看到网络共享映射到net use 中的驱动器,并且可以使用 UNC 路径或映射的驱动器号访问它,所以不知道为什么我无法获取驱动器号。
我为这个问题找到了以下 3 个答案,但由于某种原因,它们都不适合我。从每个获得的 URL、代码和结果如下所示。非常感谢任何帮助!
Mapping a network drive without hardcoding a drive letter in a batch file
for /f "tokens=2" %%i in ('net use ^| find "\\NetworkShare1\Share1"') do set netdrive=%%i
结果:\NetworkShare1\Share1 已被映射
Return users mapped drive letter from network drive remote
FOR /F "tokens=2" %%D IN ('net use ^| find ":" ^| find /I "\\NetworkShare1\Share1"') DO ECHO Drive letter is %%D
结果:驱动器号为 \NetworkShare1\Share1
How to get drive letter of mapped network drive
for /f "tokens=2,3" %%i in ('net use') do if '%%j=='\\NetworkShare1\Share1 set drive=%%i
echo %drive%
结果:回声已关闭。
【问题讨论】:
-
你在命令提示符下单独使用
net use会有什么结果? -
@NekoMusume 单独使用
net use会按预期显示所有映射网络驱动器的列表。 -
这个怎么样:
wmic LogicalDisk where "ProviderName='\\\\NetworkShare\\Share1'" get DeviceID /VALUE(每个\需要通过加倍为wmic命令行转义);如果有这样的,这应该返回映射的驱动器号...... -
谢谢@aschipfl。您可能希望在上面的评论中将您对“/”的解释添加到下面的答案中。这是很好的澄清。
标签: windows batch-file