cmd.exe中区分大小写的dir

时间:2013-02-11 12:37:30

标签: windows cmd dir glob

我刚刚在cmd.exe中经历了一次搜索dir *T.java,回复SortedArrayList.java以及ReaderT.java(我的测试类文件名结构)。我无法从dir /?的帮助输出推断出区分大小写切换。还有办法吗?

附录:我从答案中假设“Windows文件系统”是指NTFS或FAT [32]。

出于我的目的,我从使用dir /b /s *T.class | grep T\.的答案中获得了灵感,其创建了一个新的question

4 个答案:

答案 0 :(得分:4)

快速google-fu:

  

1.1 Windows文件系统简介

     

在Windows中,文件按目录(也称为文件夹)进行组织。这些目录以分层树结构组织,从根目录开始。目录可能包含子目录和文件。根目录表示为“\”(反斜杠).Windows的文件系统在驱动器中进一步组织,由驱动器号后跟冒号(例如,C:,D:,E :)标识。每个驱动器都有自己的根目录,例如C:\,D:。   Windows的文件系统不区分大小写,Rose是Rose,而且是ROSE。

所以不,使用DIR时没有“区分大小”选项。 另一方面,您可以尝试在程序一侧检查将执行文件搜索的区分大小写。在这种情况下,Java,正如我所假设的那样。只需获取所有匹配的文件,然后在Java中过滤掉不区分大小写的匹配项。

答案 1 :(得分:3)

据我所知。 Windows文件系统不区分大小写,直到最近你才能依赖你的资本保留(好吧,所以我现在回想几个版本的Windows)。因此,Microsoft的dir命令完全忽略了您可能需要区分大小写的事实。

相反,您应该尝试通过grep为Windows输出管道,这是GnuWin32项目的一部分:http://gnuwin32.sourceforge.net/packages/grep.htm

完整的软件包列表位于:http://gnuwin32.sourceforge.net/packages.html

如果您具有Linux背景并且被迫在Windows命令shell中执行任何远程有用的操作,那么这些内容非常有用。

所以,长话短说,你想要做的事情如下:

dir /b | grep T\.java

答案 2 :(得分:0)

如果您不想安装其他工具,可以使用find而不是grep。

dir /b /s | find "*T.class"

答案 3 :(得分:-1)

使用dir /L以小写字母输出。