有人见过这个奇怪的 Windows cmd 行目录吗?并且知道它是什么意思吗?

有人见过这个奇怪的 Windows cmd 行目录吗?并且知道它是什么意思吗?

我是一名 Unix 用户,对 Windows 网络了解不多,但我从 2.11 开始就知道 DOS,这看起来像是一个错误,但也许意味着什么。

H: 是挂载到共享驱动器。Z: 也是,但挂载方式不同。

H:\>dir
 Volume in drive H is SAN-Data
 Volume Serial Number is 0CB9-5031

 Directory of H:\

02/19/2014  08:57 AM    <DIR>          .
02/19/2014  08:57 AM    <DIR>          ..

 ...blah blah blah...



H:\>cd :

H:\:\>dir
 Volume in drive H is SAN-Data
 Volume Serial Number is 0CB9-5031

 Directory of H:\:

File Not Found

H:\:\>

这不是有点奇怪吗?而且它并不是在所有网络共享驱动器上都这样做,只是在某些驱动器上这样做。

Z:\>cd :
The filename, directory name, or volume label syntax is incorrect.

Z:\>

答案1

这是一个如何解释命令的问题;它与 Windows 网络无关。

Windows 中的目录名称包含非法字符是完全有可能的,而且并不罕见。Windows API 无法处理这些字符,因此通过 GUI 管理它们几乎是不可能的;通常您甚至无法重命名来修复错误字符。要修复此类名称,您必须使用命令行或第三方实用程序(如 Unlocker)。

在这种情况下,我认为您遇到的是一个备份程序,它会创建一个名为“:”的文件夹。无论出于何种原因,备份程序似乎经常与创建带有冒号的文件夹名称有关。

搜索“冒号目录名称窗口”,你会看到很多相同的提及。

但是,为了确保文件夹名称确实只是一个冒号,请查看如果将名称括在引号中会发生什么情况,即

CD ":"

或者

CD "\:"

值得一提的是,在 Windows 中创建非法名称的另一种方式是从包含这些名称的另一个源复制文件夹结构。如果您使用 XCOPY 之类的命令,Windows 通常不会采取任何措施来停止使用非法名称进行复制,并且还允许您复制导致路径长度超过 Windows API 可以处理的 ~255 个字符的结构。

最后一点——一些 SAN 设备允许加载多个命名空间。这意味着每个条目都存储了多个名称,因此您通常会看到存储的 8.3 名称以及完整的长名称,并且还可以有 Mac 命名空间,其中存储的名称与 Mac 命名要求兼容。如果不了解 SAN 的更多信息,我无法告诉您使用的内容,但它提供了另一种可能性。如果您只列出 8.3 名称,就可以看到其中的一些内容,这在 Windows 中是

DIR /X

相关内容