C:\> cd \somewhere
'\somewhere'
CMD does not support UNC paths as current directories.


为了解决这个问题,我通常要做的是将该目录映射到网络驱动器,然后可以从命令提示符轻松访问它。

但是有没有更容易解决此问题的方法?

评论

您使用哪个窗户?如果是Windows 7,则说明您已在系统上预安装Powershell。 Powershell支持unc-paths和cmd-commands(少数例外)。

您始终可以通过run浏览到unc路径。

@wullxz:干杯,我不知道您可以使用PowerShell浏览UNC路径。 @kyle:根据我的问题,这实际上是一个有效的答案:)但是我想从命令行环境访问它。将修改我的问题以使其更清楚。

如果您的问题是只需要从命令行工作,则可以使用“ net”命令映射网络驱动器:net use x:\\计算机名\共享名

@Aleister Crowley:是的,我知道,但是我想问是否有一种不涉及映射网络驱动器的简便方法。

#1 楼

如果使用pushdpopd而不是cd,则不会收到UNC错误。

pushd <UNC path>将创建一个临时虚拟驱动器并将其插入。 popd将删除临时驱动器,并带您回到输入pushd时的路径。

示例:

C:\a\local\path> pushd \network_host\a\network\path

U:\a\network\path> REM a temporary U: virtual drive has been created

U:\a\network\path> popd

C:\a\local\path> REM the U: drive has been deleted

C:\a\local\path>


评论


使用推入创建到网络共享的驱动器映射,然后更改为相对于其创建的共享的路径。 popd断开共享。

–Dov
2012年9月6日15:55

在Windows 10上,这对我不起作用。C:\ WINDOWS \ system32> pushd \\ some \ network \ path''CMD不支持UNC路径作为当前目录。

–kayleeFrye_onDeck
17年4月4日在2:43

它在Windows 10中对我来说只是工作,多么奇怪。我确实推送了\\ ServerName \ home \ dir \ dir2。

– Diziet
17年5月20日在14:36

乡土典雅,只是一个奇迹。适用于Windows 10。

– WesternGun
17年6月22日在7:55



当共享凭据与计算机的用户凭据不匹配时,是否有任何技巧可以使其正常工作?

–珀金斯
18 Mar 7 '18 at 0:51

#2 楼

我已经使用Git Bash进行了安装,因为我已经安装了它。



另外一个好处是:
它还具有更好的颜色,让我使用lsrm等,并为路径使用正确的斜杠。 :P

评论


如果用反斜杠转义,也可以使用反斜杠:cd \\\\ server \\ share \\ subdirectory

–user121391
16年7月27日在8:56

另外,如果您尝试使用带有计算机名称的制表符补全,则外壳程序可能会锁定一段时间,直到名称解析完毕。

–user121391
16年7月27日在9:03

它对我不起作用

– KansaiRobot
18年11月6日在9:46

#3 楼

Kliu的“ ContextConsole Shell扩展”(又名“打开命令提示符”)说,“甚至可以从网络路径(UNC路径)打开目录”(从资源管理器窗口打开)。

http://code.kliu .org / cmdopen /



评论


这个程序真棒!

–非洲
11年5月13日在16:37

屏幕截图令我震惊,它存在!

– LiuYan刘研
2012年6月21日上午11:01

记住要打开//驱动器而不是打开映射版本。映射失败。

–twobob
17年5月4日在14:04

#4 楼

我也在C程序中遇到了C:\> cd \somewhere的UNC问题。找到此页面并了解net命令:net use x: \computer name\share name并成功使用了它!感谢所有将自己的经验发布给其他人学习的人。 :-)

评论


是的,但是使用网络使用可以将该位置映射到网络驱动器,而这不是我想要的。

– Andreas Grech
13年1月28日在12:36

@AndreasGrech,实际上也这样做了。

–起搏器
15年1月24日在6:48

与推入不同,这在Far + ConEmu中效果很好。

–德米特里·拉霍达(Dzmitry Lahoda)
16年6月3日,11:29

@Pacerier但按下后会自动选择一个驱动器号,并在不再需要时(弹出或退出后)断开网络驱动器的连接。

–马丁
19年4月12日在15:26



#5 楼

如果您使用的是XP,则可以访问此网站http://support.microsoft.com/kb/156276

有一个注册表值需要添加,注销,登录再次输入...现在您的cmd.exe确实支持UNC路径。在我看来,您仍然无法CD到路径,但是您可以在其他命令中使用它,例如dir,copy ...

另一种可能是使用pushd命令,这将使您切换到共享(我想是给它分配了一个临时驱动器号)http://support.microsoft.com/kb/317379

评论


您链接的页面似乎是空白页面……

–起搏器
15年1月24日在6:49



链接在这里工作。您是否尝试过使用https?

–BigBlackDog
15年1月27日在8:21

#6 楼

恕我直言,最优雅的解决方案是使用mklink / D为网络路径创建符号链接。如果在脚本中使用,则不必找出已分配的驱动器号。

评论


更改目录(只读操作)的最优雅方法是修改文件系统?您在哪里创建链接? \温度?您可能无权访问当前目录。你怎么称呼链接?如果已经有\ Temp \某处尚未链接到\\某处该怎么办?如果文件正在使用中呢?等等……这比被推崇的还优雅吗?

– G-Man说“恢复莫妮卡”
20年1月17日,下午3:22

#7 楼

您可以使用HttpFileServer应用程序,它在Windows上运行,非常轻巧且易于配置,它允许您使用HTTP协议共享网络文件夹UNC(\ server \ share),并且HTTP链接可以在任何HTML页面中使用。 br />
http://www.rejetto.com/hfs/

太神奇了

评论


对命令行用户不是很有用。

–艾萨克·拉比诺维奇(Isaac Rabinovitch)
2012年10月20日下午5:17

我同意这是一个了不起的软件,但是如何解决CMD窗口应用程序不能处理UNC的事实呢?

–杰伊·埃尔斯顿(Jay Elston)
18年1月5日在22:02