wmic path win32_mappedlogicaldisk get deviceid, providername
结果:
DeviceID ProviderName
I: \\server1\Temp
J: \\server2\Corporate
Y: \\Server3\Dev_Repo
Z: \\Server3\Repository
作为批处理文件(src):
@if [%1]==[] goto :Usage
@setlocal enabledelayedexpansion
@set _NetworkPath=
@pushd %1
@for /f "tokens=2" %%i in ('wmic path win32_mappedlogicaldisk get deviceid^, providername ^| findstr /i "%CD:~0,2%"') do @(set _NetworkPath=%%i%CD:~2%)
@echo.%_NetworkPath%
@popd
@goto :EOF
:: ---------------------------------------------------------------------
:Usage
@echo.
@echo. Get the full UNC path for the specified mapped drive path
@echo.
@echo. %~n0 [mapped drive path]
例子:
C:\> get-unc-path.bat z:\Tools\admin
\\EnvGeoServer\Repository\Tools\admin
改编自https://superuser.com/a/1123556/16966的批处理脚本。如果您喜欢此解决方案,请务必也投票支持该解决方案。
2021 年 11 月 15 日更新:错误修复。以前批处理只报告驱动器号 UNC 根,而忽略了还报告文件夹路径。
%CD%
是%%i
通过某种 CMD 魔法设置的。
%CD:~0,2%
并分别%CD:~2%
提取驱动器号和尾随路径子字符串。例如:~2%
'Z:\Tools\admin' 中的 '\Tools\admin'。