您如何处理“ CMD不支持将UNC路径作为当前目录”?


Answers:


34

如果您正在考虑编写脚本,那么学习pushdpopd命令总是有帮助的。有时,您不确定脚本将在其上运行的计算机上已经使用了哪些驱动器号,而您只需要获取下一个可用的驱动器号即可。由于net use需要您指定驱动器,因此您可以简单地使用pushd \\server\folder,然后popd在完成后使用。


如果您指定“ *”而不是驱动器号,则net use将使用ZA中第一个可用的驱动器检查。因此没有Z:的'net use * \\ server \ share':没有映射的驱动器会将\\ server \ share映射到Z:
Zypher

但是,出于脚本其余部分的目的,您不知道映射了哪个驱动器号。
tomfanning

@tomfanning您可以在命令提示符下使用此字符(wmic logicaldisk获取标题,提供者名称,驱动器类型,卷名称)找到驱动器号,然后解析输出以查找\\ servername \ sharename。serverfault.com/questions/62578/…–
克里斯·马格努森

1
@pk。如果脚本在运行您的脚本之前崩溃了popd怎么办?
Pacerier,2015年

15

或者,您可以将Shell切换到PowerShell。它完全支持UNC路径。


除非explorer.exe在要删除的文件上具有句柄。即使关闭了资源管理器窗口,我认为PS FileSystem提供程序(假设它是提供程序)也可能在后台使用explorer.exe。还是您说有一种无需提供程序即可使用UNC的方法?
JohnZaj

11

您可以用来net use将网络驱动器映射到UNC路径,然后浏览到映射的驱动器。


2
的确,这是从命令行执行此操作的唯一方法,但是请警惕将其用于除一次性命令以外的任何操作(即,您只能执行一次操作),因为否则会遇到驱动器未映射或被映射的问题。映射但未连接,并且有多个用户名:(
马克·亨德森

1
您无法切换到该目录,但仍可以在命令中使用它:dir \\ someserver \ stuff call \\ someserver \ stuff \ whatever.bat
Benoit,2009年

1
实际上,您也许可以使用\\ someserver \ share ...您只需要使用reg hack即可:-)
Bart Silverstrim 2009年

@BartSilverstrim,如何?
和平者


1

除了显式映射驱动器以使其cmd可以应付(其他实用程序也可能需要)外,您还可以尝试使用其他命令外壳(如PowerShell)。


1

这在Win8x64中对我有用:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
"DisableUNCCheck"=dword:00000001

您也应该能够在HKCU中执行此操作,只需确保注销并重新登录即可。


1

按照@pk使用push&popd,这是一个示例。

使用推入创建临时虚拟驱动器,完成后执行popd删除临时虚拟驱动器

:selectFolder
REM Confirm which Folder structure
set /p location="Delete files for which QA environment: (P)retoria, (C)ape, (L)uanda or (Q)uit? (C/L/P/Q)"
REM  I option allows for upper and lower case
if /I "%location%"=="C" set folder="\\Tfwcqa\tfwcqa\EORDERS"
if /I "%location%"=="L" set folder="\\Tfluaqa\tfluaqa\EORDERS"
if /I "%location%"=="P" set folder="\\Tfptaqa\tfptaqa\EORDERS"
if /I "%location%"=="Q" goto endBatch

REM you can not cd to a network drive so we use pushd to create a temporary virtual drive
REM cd /d %folder%
pushd %folder%

DIR /S

REM popd deletes the temporary virtual drive
popd

0

不会的结命令在这里工作?


1
不要这么认为,联结仅适用于本地目录。
Berzemus

它行得通吗?在Wikipedia文章中:“连接点只能链接到本地​​卷上的目录;不支持到远程共享的连接点。”
彼得·莫滕森

@#%!# 你是对的。我当时以为这就像是一个安装命令,两年前我忘记了这个问题。 抱歉,叹了口气
Bart Silverstrim

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.