2013-02-11 2 views
1

Я только что испытал поиск dir *T.java в cmd.exe, возвращая SortedArrayList.java, а также ReaderT.java (моя структура имени файла Test class). Я не могу вывести переключатель чувствительности к регистру с помощью справки dir /?. Есть ли еще способ?регистр, чувствительный к регистру, в cmd.exe

Приложение: Предполагаю, что из ответов «Файловая система Windows» относится к NTFS или FAT [32].

Для моих целей я был вдохновлен из ответов использовать dir /b /s *T.class | grep T\., который создал новый question

+0

Shameless вилка: возможно дубликат [риэлторами записей в каталоге, используя Grep] (http://stackoverflow.com/questions/14715387/listing-entries-in-a-directory-using-grep) –

+2

Это Вопрос касается конкретно каталога Windows. Действительно ли уместно обозначать его как дубликат вопроса, связанного с Linux? – paddy

+0

@Paddy Точный дубликат? Конечно нет. Возможно, это может быть дубликат. Вы даже упоминаете «grep» в своем ответе. –

ответ

4

Просто быстрый Google-фу:

1,1 Введение в файл Windows' System

В Windows, файлы организованы в каталогах (ака папок). Каталоги организованы в иерархическую древовидную структуру, начиная с корневого каталога. Каталог может содержать подкаталоги и файлы. Корневой каталог обозначается как «\» (обратная косая черта). Файловая система Windows дополнительно организована на диске, обозначенная буквой диска, за которой следует двоеточие (например, C :, D :, E :). Каждый накопитель имеет свой собственный корневой каталог, такой как C: \, D :. Файловая система Windows не чувствительна к регистру, роза - это Роза, и это РОЗА.

Нет, нет опции «case-senstive» при использовании DIR. С другой стороны, вы можете попробовать проверить чувствительность к регистру на стороне программы, которая будет выполнять поиск файлов. В этом случае Java, как я полагаю. Просто получите все файлы, которые соответствуют, а затем отфильтровывают нечувствительные к регистру совпадения в Java.

-1

Использование dir /L для вывода в нижнем регистре.

+0

Это касается только вывода, а не файлов, выбранных/соответствующих шаблону. –

+0

Исправить. Должно быть ясно, что OP хотел перечислить только файлы с капиталом 'T' непосредственно перед расширением' .java'. – paddy

2

Насколько мне известно. Файловая система Windows не чувствительна к регистру, и до недавнего времени вы не могли полагаться на ваши капитализации, которые нужно сохранить (хорошо, поэтому я сейчас думаю о нескольких версиях Windows). Итак, в результате команда Microsoft dir полностью игнорирует тот факт, что вам может понадобиться чувствительность к регистру.

Вместо этого, вы должны попытаться конвейерный вывод через grep для Windows, которая является частью проекта gnuwin32: http://gnuwin32.sourceforge.net/packages/grep.htm

Полный список пакетов по адресу: http://gnuwin32.sourceforge.net/packages.html

Довольно полезный материал, чтобы иметь, если вы имеют фон Linux и вынуждены делать что-то отдаленно полезным в командной оболочке Windows.

Так, Короче говоря, вы хотите сделать что-то вроде:

dir /b | grep T\.java 
+0

Инструменты Cygwin, такие как 'ls', также чувствительны к регистру в обработке FS. И они могут быть вызваны из 'cmd', если' cygwin \ bin' находится в 'PATH'. –

+0

Конечно ... если вы действительно думаете, что стоит установить cygwin именно для этого. – paddy

+0

Ну, инструменты командной строки UNIX помещают файлы '.bat' в позор, когда дело доходит до автоматизации любых реальных задач. Поэтому я действительно думаю, что скоро это станет «просто для этого». –

0

Вы можете использовать найти вместо Grep, если вы не хотите, чтобы установить дополнительные инструменты.

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