2013-02-11 81 views
1

我剛剛在cmd.exe中遇到搜索dir *T.java,返回SortedArrayList.java以及ReaderT.java(我的測試類文件名結構)。我無法從dir /?的幫助輸出推斷區分大小寫切換。還有一種方法嗎?cmd.exe中區分大小寫的目錄

附錄:我從答案中假設「Windows文件系統」是指NTFS或FAT [32]。

對於我而言,我從答案的啓發,用dir /b /s *T.class | grep T\.在哪些情況下創造了一個新的question

+0

無恥插頭:[在一個目錄用grep清單條目]的可能重複(http://stackoverflow.com/questions/14715387/listing-entries-in-a-directory-using-grep) – 2013-02-11 12:49:23

+2

這問題是關於目錄列表Windows的具體問題。將它標記爲Linux相關問題的副本真的很合適嗎? – paddy 2013-02-11 13:04:19

+0

@Paddy完全重複?當然不是。可能重複,也許。你甚至可以在你的答案中提到'grep'。 – 2013-02-11 18:36:23

回答

4

只是一個快速的谷歌福:

1.1介紹Windows的文件系統

在Windows中,文件的目錄下(又名文件夾)。這些目錄按照從根目錄開始的分層樹結構進行組織。目錄可能包含子目錄和文件。根目錄表示爲「\」(反斜槓).Windows的文件系統進一步在驅動器中組織,由一個驅動器號和一個冒號標識(例如,C:,D:,E :)。每個驅動器都有自己的根目錄,例如C:\,D :. Windows的文件系統不區分大小寫,玫瑰是玫瑰,並且是玫瑰。

所以不行,使用DIR時沒有「case-senstive」選項。 另一方面,您可以嘗試檢查將執行文件搜索的程序一側的區分大小寫。在這種情況下,正如我所設想的,Java。只需獲取所有匹配的文件,然後篩選出Java中不區分大小寫的匹配項即可。

-1

使用dir /L輸出。

+0

這隻涉及輸出,而不是模式選擇/匹配的文件。 – 2013-02-11 12:47:56

+0

正確。應該清楚的是,OP想要在'.java'擴展名之前立即只列出大寫字母'T'的文件。 – paddy 2013-02-11 12:51:17

2

不是我所知。 Windows文件系統不區分大小寫,直到最近你不能依靠你的大寫字母來保存(好吧,現在我回想幾個Windows版本)。因此,微軟的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 
+0

類似'ls'的Cygwin工具在FS處理中也是區分大小寫的。如果'cygwin \ bin'在'PATH'中,它們可以從'cmd'調用。 – 2013-02-11 12:55:19

+0

當然...如果你真的認爲這是值得安裝cygwin的。 – paddy 2013-02-11 12:57:34

+0

那麼,UNIX cmdline工具會讓'.bat'文件在自動執行任何實際任務時感到羞恥。所以我真的認爲它很快就不會成爲'只爲了那個'。 – 2013-02-11 13:05:46

0

您可以用找到的,而不是grep的,如果你不想安裝額外的工具。

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