gpt4 book ai didi

windows - 如何在 Windows/命令行/文件打开对话框下匹配精确的文件扩展名?

转载 作者:可可西里 更新时间:2023-11-01 10:43:30 26 4
gpt4 key购买 nike

我正在尝试获取仅包含具有给定扩展名的文件的目录列表。乍一看,这似乎是一件简单的事情,但是看看这个简单的例子:

C:\CODE\metcal>dir /b *.exe
metcal.exe
metcal.exe1

请注意,这会返回 metcal.**exe**metcal.**exe1** 作为匹配项。

对于 python 文件,会发生类似的事情:

C:\CODE\metcal>dir /b *.py
metcal.py
metcal.pyc

再次注意 Windows 已确定 *.py 接受任何以 *.py 开头的内容,因此它也捕获 .pyc 文件.

有没有办法只获取完全匹配的扩展名?在上面的 python 文件示例中,我希望发生以下情况(显然用正确的语法代替 *.py)

C:\CODE\metcal>dir /b *.py
metcal.py

请注意,Windows下的匹配并不像看起来那么简单。

*.exe 匹配 foo.exe, foo.exe1, foo.exeabcde foo.exe.bak

SO 上还有其他类似的问题与长/短文件名相关。此处的 *.py 和 *.pyc 示例不应引入名称修改机制。

**我在 XP 和 Win7 机器上进行了试验,这种行为在 cmd 提示符和文件打开对话框中并不一致。这种不一致的行为让我怀疑这个问题与某种设置有关。 **

最佳答案

这是因为扩展名中的 Windows 通配符会检查长名称和短名称,如本答案中所述: https://superuser.com/questions/238900/winxp-dir-command-3-and-4-char-extensions-are-the-same#238930

解决方案是禁用 8.3 名称创建,然后将它们 strip 化到 ntfs 卷上,这也将提高性能。

Microsoft Docs: Fsutil 8dot3name

Remarks: Permanently removing 8dot3 file names and not modifying registry keys that point to the 8dot3 file names may lead to unexpected application failures, including the inability to uninstall an application. It is recommended you first back up your directory or volume before you attempt to remove 8dot3 file names.

关于windows - 如何在 Windows/命令行/文件打开对话框下匹配精确的文件扩展名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38505368/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com