CMD does not support UNC paths as current directories.
最后,我想试试
网络使用
令我惊讶的是,我已经用完了所有的驱动器号。我做了之后
NET USE * /D
知道自己没有失去理智,我再次感到高兴。
这是我的标准 cmd 序言:
SETLOCAL EnableExtensions
rem pushd handles Windows dumbness when the command directory is a UNC
rem and we want to use it as the current directory. e.g. click launch a cmd file on the network.
pushd "%~dp0\"
: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
如果您正在考虑编写脚本,了解
pushd
andpopd
命令总是有帮助的。有时您不能确定运行脚本的机器上已经使用了哪些驱动器号,您只需要获取下一个可用的驱动器号。由于net use
将要求您指定驱动器,因此您可以简单地使用pushd \\server\folder
,然后popd
在完成后使用。或者你可以将你的 shell 切换到PowerShell。它完全支持 UNC 路径。
您可以使用
net use
将网络驱动器映射到 UNC 路径,然后浏览到映射的驱动器。这在 Win8x64 中对我有用:
您应该也可以在 HKCU 中执行此操作,只需确保您注销并重新登录即可。
稍微长一点的 pushd 解释:http: //shortfastcode.blogspot.com/2010/05/how-to-deal-with-cmd-does-not-support.html
Pushd 工作,但是...
我一直在使用
在 cmd 文件开头的时间比我记得的要长,总是有一个补充
在文件的末尾。直到最近,这还在起作用,当:
然后我得到了一个模糊的错误,如果不是完全误导的错误:
最后,我想试试
网络使用
令我惊讶的是,我已经用完了所有的驱动器号。我做了之后
知道自己没有失去理智,我再次感到高兴。
这是我的标准 cmd 序言:
除了显式映射驱动器以便
cmd
可以应对(其他实用程序也可能需要)之外,您还可以尝试使用 PowerShell 等替代命令 shell。根据@pk 使用 pushd 和 popd,这是一个示例。
使用 pushd 创建一个临时虚拟驱动器,完成后执行 popd 删除临时虚拟驱动器
代替
利用
下面的代码完全适合我,请参阅示例
联结命令在这里不起作用吗?