【发布时间】:2012-06-21 20:25:32
【问题描述】:
我在查找名称中带有数字的文件时偶然发现了这一点。当我输入时:
dir *号码*
(其中数字表示从 0 到 9 的任意数字,星号和数字之间没有空格)
在 cmd.exe 命令提示符下,它会返回各种文件中未出现的任何文件以符合搜索条件。奇怪的是,根据目录,一些数字会起作用,而其他数字则不起作用。例如,在与网站关联的目录中,我键入以下内容:
dir *4*
返回的是:
C:\Ampps\www\includes\pages 目录 2012 年 4 月 30 日下午 03:55 153 inventory_list_retrieve.php 2012 年 6 月 18 日上午 11:17 6,756 ix.html 2012 年 6 月 19 日下午 1:47 257,501 jquery.1.7.1.js 3 个文件 264,410 字节 0 Dir(s) 362,280,906,752 字节空闲这对我来说没有任何意义。有什么线索吗?
这个问题是在 stackOverflow 上提出的,因为 DIR 命令在批处理程序中经常与 FOR 结合使用。如果使用 DIR 命令,奇怪的 DIR 行为似乎会使批处理程序可能不可靠。
编辑:(附加说明)。虽然已经过去了很长时间,但我发现了另一个怪癖,这几乎让我付出了很多工作。我想删除特定目录树中的所有 .htm 文件。就在这样做之前,我意识到*.htm 也与.html 文件匹配。此外,*.man 匹配 .manifest,可能还有其他匹配项。至少可以说,删除该特定目录中的所有 .html 文件会令人沮丧。
【问题讨论】:
-
有趣!我们需要对这件事做一些测试......
-
哇,这么多年过去了 - 仍然对这项技术感到惊讶。我可以确认这种奇怪的行为。
-
虽然这个问题没有明确解决批处理编程,但潜在的问题对批处理编程有深远的影响。请不要以与编程无关的理由关闭此问题。
-
如果有能力投票反对关闭投票,我会的。如果问题已关闭,我将投票重新开放。这是在命令提示符和批处理文件中都暴露的 Windows API 的一个潜在问题。恕我直言,这显然是批处理和 cmd 标签的主题。
标签: windows command-line batch-file cmd dir