我有一个完全依赖PUSHD的伟大的大脚本。但是当我输入pushd \\server1\dir1
时我突然发现:
C:\Documents and Settings\userNameHere>pushd \\server1\dir1
' '
CMD does not support UNC paths as current directories.
好的,我知道CMD不支持UNC路径。这就是我使用PUSHD的原因。当我搜索这个时,我发现很多帖子说“当你遇到有关UNC路径的消息时,你应该使用PUSHD!”。好吧,我正在使用PUSHD遇到消息和。
我尝试使用CMD /E:ON
因为PUSHD仅在启用命令扩展时才有效,显然。结果相同。
我想看看我是不是出于驱动器号码(因为PUSHD从Z开始:然后向后找到一个驱动器号)。不。
我尝试在c:\ dir(cd c:\
然后pushd \\server1\dir1
)启动我的cmd。
我确认驱动器在那里,我可以通过Windows资源管理器访问它。
现在我没有想法。
推送参考:Link
答案 0 :(得分:5)
根据我的判断,确定答案是,如果您在Y:在映射的驱动器中,那么pushd将无效。因此,您需要执行net use y: /delete
(或其他一些驱动器号),然后使用pushd
映射您的驱动器。我已经映射了所有驱动器号,除了Z和A.可能Z是保留的吗?我不知道。
我的错误是检查Z:是否可用(它没有映射)。显然,如果你已经将所有内容映射到包括Y:那么它将不会映射Z:。不知道为什么。
答案 1 :(得分:1)
您需要确保启用了命令扩展。
注册表项是:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions
and/or
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions
设置为0x1
(已启用)或0x0
(已禁用)。用户特定设置优先于机器设置。
还要确保pushd
命令有可用的驱动器号。如果所有驱动器号都已映射并正在使用,那么pushd
命令将以您详细说明的方式失败。
答案 2 :(得分:0)
不会像往常一样将驱动器映射到字母,而是在'pushd'之前完成这个技巧......就像在你的例子中一样
net use E: \\\\server1\\dir1 pushd E:\ .... popd