C:\> cd \somewhere
'\somewhere'
CMD does not support UNC paths as current directories.
为了解决这个问题,我通常要做的是将该目录映射到网络驱动器,然后可以从命令提示符轻松访问它。
但是有没有更容易解决此问题的方法?
#1 楼
如果使用pushd
和popd
而不是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进行了安装,因为我已经安装了它。另外一个好处是:
它还具有更好的颜色,让我使用
ls
,rm
等,并为路径使用正确的斜杠。 :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
评论
您使用哪个窗户?如果是Windows 7,则说明您已在系统上预安装Powershell。 Powershell支持unc-paths和cmd-commands(少数例外)。您始终可以通过run浏览到unc路径。
@wullxz:干杯,我不知道您可以使用PowerShell浏览UNC路径。 @kyle:根据我的问题,这实际上是一个有效的答案:)但是我想从命令行环境访问它。将修改我的问题以使其更清楚。
如果您的问题是只需要从命令行工作,则可以使用“ net”命令映射网络驱动器:net use x:\\计算机名\共享名
@Aleister Crowley:是的,我知道,但是我想问是否有一种不涉及映射网络驱动器的简便方法。