2

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

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

出于我的目的,我从使用的答案中得到启发,dir /b /s *T.class | grep T\. 这创造了一个新问题

4

5 回答 5

4

只是一个快速的 google-fu:

1.1 Windows文件系统介绍

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

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

于 2013-02-11T12:44:01.137 回答
3

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

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

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

如果你有 Linux 背景并且被迫在 Windows 命令 shell 中做任何远程有用的事情,那么这些东西是非常有用的。

所以,长话短说,你想做这样的事情:

dir /b | grep T\.java
于 2013-02-11T12:46:58.667 回答
3

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

dir /b /s | find "T.class"
于 2015-11-05T17:07:03.317 回答
0

如果您不介意使用 PowerShell,那么您也可以尝试

dir | Where-Object {$_.Name -clike "*T.java"} 

来源

请考虑:

  • dir在 PowerShell中是命令ls的别名。Get-ChildItem
  • where并且?也是Where-Object命令的别名。
于 2021-11-25T13:12:32.023 回答
-1

用于dir /L以小写形式输出。

于 2013-02-11T12:41:28.930 回答