命令提示符不能正确处理通配符

时间:2016-09-13 18:27:19

标签: directory command prompt

据我所知,命令dir C:\ kat \ subkat \ 20 *。*应该生成C:\ kat \ subkat \中所有文件的列表,其中20为文件名中的第一个字符。在我的电脑里,我没有得到所有文件。但是,我得到所有文件的最新更改日期从20开始。有没有人看到类似的东西? 当尝试使用此方法进行XCOPY复制时,我收到了大量复制的文件。其中很少是C:\ kat \ subkat \中的文件,其中20是文件名中的第一个字符。发生了什么事?我能做什么? 我在HP Probook6470b上安装了Windows 7。

1 个答案:

答案 0 :(得分:0)

Dir命令具有MS-DOS遗留物,其带有CP / M遗留物。 Dir command history

对于名称中包含空格,超过12个字符或扩展名超过3个字符的文件,行为可能会出乎意料。

那是因为生成的8.3短名称 这个Rules for 8.3 short names提供了关于如何生成短名称的线索,但并非详尽无遗。 请参阅下面的示例以获取一些提示

当使用dir搜索的文件夹或计算机支持短名称时,最终结果中将包含短名称尊重掩码的文件

此外,结果包括短名称包含掩码中包含的字符的文件,即使这些字符也不是长名称的一部分。

一个典型的例子是~1(2,3 ..)后缀 How affect short names the DIR result

通过删除对短名称的支持,可以停止此行为。

实施例。 假设您的文件夹包含

aabb.xl
aa bb.xl
aabb.xls
aa bb.xls
aabb.xlsx
aa bb.xlsx
aabb.xlsxp
aa bb.xlsxp
aabb.xlsxpm
aa bb.xlsxpm

在我的电脑上,这是结果 例1)

DIR a*.* /x
17.09.2015  10:35                 0 AABB~1.XL    aa bb.xl
17.09.2015  10:35                 0 AABB~1.XLS   aa bb.xls
17.09.2015  10:35                 0 AABB~3.XLS   aa bb.xlsx
17.09.2015  10:35                 0 AA3C12~1.XLS aa bb.xlsxp
17.09.2015  10:35                 0 AA96D4~1.XLS aa bb.xlsxpm
17.09.2015  10:35                 0              aabb.xl
17.09.2015  10:35                 0              aabb.xls
17.09.2015  10:35                 0 AABB~2.XLS   aabb.xlsx
17.09.2015  10:35                 0 AABB~4.XLS   aabb.xlsxp
17.09.2015  10:35                 0 AA84DD~1.XLS aabb.xlsxpm

示例2)

DIR "*b*.xls" /x
aabb.xls
aa bb.xls
aabb.xlsx
aa bb.xlsx
aabb.xlsxp

例3)

DIR "*b*.xl?" /x
aabb.xl
aa bb.xl
aabb.xls
aa bb.xls
aabb.xlsx
aa bb.xlsx
aabb.xlsxp

例4)

DIR "*D*.xls" /x
aa bb.xlsxpm aka AA96D4~1.XLS
aabb.xlsxpm aka AA84DD~1.XLS

例5)

DIR "??????.xls" /x
aabb.xls
aa bb.xls aka AABB~1.XLS
aabb.xlsx aka AABB~2.XLS
aa bb.xlsx aka AABB~3.XLS
aabb.xlsxp aka AABB~4.XLS