我刚刚经历了dir *T.java
在 cmd.exe 中的搜索SortedArrayList.java
以及ReaderT.java
(我的测试类文件名结构)。我无法从帮助输出中推断出区分大小写的开关dir /?
。不过还有办法吗?
附录:我从答案中假设“Windows 文件系统”指的是 NTFS 或 FAT[32]。
出于我的目的,我从使用的答案中得到启发,dir /b /s *T.class | grep T\.
这创造了一个新问题
只是一个快速的 google-fu:
1.1 Windows文件系统介绍
在 Windows 中,文件组织在目录(也称为文件夹)中。目录以分层树结构组织,从根目录开始。目录可能包含子目录和文件。根目录表示为“\”(反斜杠)。Windows 的文件系统进一步组织在驱动器中,由驱动器号后跟冒号标识(例如,C:、D:、E:)。每个驱动器都有自己的根目录,如C:\、D:。Windows 的文件系统不区分大小写,玫瑰就是玫瑰,玫瑰就是玫瑰。
所以不,使用 DIR 时没有“区分大小写”选项。另一方面,您可以尝试在将执行文件搜索的程序一侧检查是否区分大小写。在这种情况下,我认为是 Java。只需获取所有匹配的文件,然后在 Java 中过滤掉不区分大小写的匹配项。
据我所知不是。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
如果您不想安装其他工具,可以使用 find 而不是 grep。
dir /b /s | find "T.class"
如果您不介意使用 PowerShell,那么您也可以尝试
dir | Where-Object {$_.Name -clike "*T.java"}
(来源)
请考虑:
dir
在 PowerShell中是命令ls
的别名。Get-ChildItem
where
并且?
也是Where-Object
命令的别名。用于dir /L
以小写形式输出。