从cmd窗口确定映射的网络路径


26

我有一个网络驱动器-映射到 Z:\

有一个简单的命令可以知道完整的网络路径cmd吗?

即如果cmd显示Z:\ABC\,我想要一个命令来输出\\networkDrive\MappedDir\ABC

net use 很好,但是我想获取当前工作目录的完整路径(用于快速复制)。

Answers:


37

类型

net use

这将显示所有当前连接的网络驱动器。

OK           Z:        \\127.0.0.1\c$            Microsoft Windows Network

谢谢,您知道一种获取当前工作目录的完整路径的方法吗?
Ofiris

1
echo %cd%
Endoro

@Endoro,echo %cd%输出当前目录(Z:\ABC),而不输出\\netDrive\ABC
Ofiris,

我不认为您可以通过简单的命令行来获取它。您可能可以编写一个批处理/ powershell脚本来执行此操作,但是我没有尝试编写一个。在以下网站上查看来自Icarus的答案:superuser.com/questions/244579/…也许您可以根据需要使用它。
Darius 2013年

当前未连接的驱动器(例如,通过当前断开连接的VPN)如何处理?

1

这是一个很老的问题,但是..我一直在寻找与尝试创建批处理时使用的完全相同的答案,该批处理将使用UNC路径到达修补程序的实际位置,并在那里进行某些操作(因此只能将其复制并粘贴到另一个位置/文件夹,然后重新开始)。

由于找不到答案,我自己找到了解决方案,但这不是很漂亮,当然也不是简单的命令。但是可以批量实现。在CMD上将是:

FOR /F "tokens=2" %i IN ('NET USE ^| FIND "%CD:~0,2%"') DO (
      SET cNetworkPath=%i)
SET cNetworkPath=%cNetworkPath%%CD:~2%
ECHO %cNetworkPath%

您可以复制四行(更好的4 +空行)并将其粘贴到CMD中,以获取复制路径的模仿效果。

批量使用时,您会有所不同:

FOR /F "tokens=2" %%i IN ('NET USE ^| FIND "%~d0"') DO (
      bNetworkPath=%%i)
SET bCheckPath=!bOriginalPath!%~p0

变量%CD%存储当前路径,并且您只需要驱动器号,因此您只能使用NET USE中的FIND命令进行搜索。使用“ tokens = 2”(或3,取决于NET USE输出)时,%i变量存储您搜索的驱动器号的路径。之后,第二条SET命令将您在网络驱动器上浏览的文件夹添加到%CD:〜2%(偏移2以切断驱动器号)。

对于批处理,请使用%〜d0或%〜p0变量。%0存储批处理本身的完整路径(例如Z:\ temp \ test.bat;%〜d0 = Z:;%〜p0 = \ temp \; d =驱动器,p =路径,f =完整路径,n = name),否则类似于CMD命令。


样本很有趣,但是很破损。例如(DO...),批处理示例丢失了SET ...,并且bOriginalPath未在任何地方定义。
马特·威尔基,2016年

0

蝙蝠的路径可能与工作目录不同。因此,我们需要蝙蝠内Mykorrhiza的第一种方法。为了适应缺少状态以及本地磁盘驱动器的情况,我们需要进行其他检查。以下是工作代码:

SET cNetworkPath=    
FOR /F "tokens=2" %%i IN ('NET USE ^| FIND "%CD:~0,2%"') DO (
      SET cNetworkPath=%%i)
if "%cNetworkPath%" == "%CD:~0,2%" (
  FOR /F "tokens=3" %%i IN ('NET USE ^| FIND "%CD:~0,2%"') DO (
        SET cNetworkPath=%%i)
)
if "%cNetworkPath%" == "" set cNetworkPath=%CD:~0,2%
SET cNetworkPath=%cNetworkPath%%CD:~2%
ECHO %cNetworkPath%

上面的代码在大多数情况下都可以使用,但是在某些情况下,网络使用和查找不起作用,以下是经过最终测试的工作方法:

SET cNetworkPath=
for /f "tokens=2" %%i in ('wmic path win32_mappedlogicaldisk get deviceid^, providername ^| findstr "%CD:~0,2%"') do (set cNetworkPath=%%i)
echo %cNetworkPath%

0

如果您希望它始终显示在您的提示下,则可以

set prompt=$M$Q$S$P

它将显示您的UNC路径和基于驱动器号的路径。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.