7

Как я могу искать файлы в командной строке Windows, используя такие символы подстановки?

C:\Users\*\AppData\Local\*.txt

2 ответа2

11

Windows PowerShell может сделать это легко.

Get-ChildItem C:\Users\*\AppData\Local\*.txt

Если вы хотите включить подпапки:

Get-ChildItem C:\Users\*\AppData\Local\*.txt -recurse

В отношении скрытых (и т.д.) Файлов справка Powershell help Get-ChildItem гласит:

По умолчанию Get-ChildItem получает не скрытые элементы, но вы можете использовать параметры Directory, File, Hidden, ReadOnly и System, чтобы получить только элементы с этими атрибутами. Чтобы создать сложный поиск атрибутов, используйте параметр Attributes. Если вы используете эти параметры, Get-ChildItem получает только элементы, которые удовлетворяют всем условиям поиска, как если бы параметры были связаны оператором AND.

5

Любая хорошая оболочка Unix для Windows сделает это.

Например, вот снимок экрана с моей оболочкой Hamilton C, выполняющей ваш пример (извините, совпадений нет) и пару других, которые производят совпадения. Подстановочный знак ... использованный в третьем примере, соответствует нулю или большему количеству уровней каталогов, независимо от того, соответствует ли остальная часть шаблона.

Подстановочные знаки с использованием оболочки Hamilton C в Windows 7 x64

И вот как вы можете сделать это с Cygwin bash . Здесь есть несколько отличий, потому что Cygwin следует соглашениям Unix: пути обычно печатаются косой чертой, а обратная косая черта - это escape-символ. Поскольку Unix не понимает буквы дисков, они ввели запись /cydrive/c для обозначения диска C: . Как и в Unix, подстановочные знаки чувствительны к регистру. И хотя он поддерживает обычные групповые символы на уровне каталогов, которые вам нужны, он не включает ... Я добавил в свою раковину. (Вместо этого вы, вероятно, использовали бы find .)

Подстановочные знаки с использованием Cygwin Bash на Windows 7 x64

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .