Как выбрать файлы по маске

Обновлено: 21.11.2024

При создании проекта, содержащего несколько файлов, вы можете перечислить каждый файл отдельно в файле проекта или использовать подстановочные знаки, чтобы включить все файлы в один каталог или вложенный набор каталогов.

Укажите входные данные

Элементы представляют входные данные для сборки. Дополнительные сведения о предметах см. в разделе Предметы.

Чтобы включить файлы для сборки, они должны быть включены в список элементов в файле проекта MSBuild. В списки элементов можно добавить несколько файлов, включив файлы по отдельности или используя подстановочные знаки для одновременного включения нескольких файлов.

Чтобы объявить элементы по отдельности

Используйте атрибуты Include, как показано ниже:

Если элементы в коллекции элементов не находятся в том же каталоге, что и файл проекта, необходимо указать полный или относительный путь к элементу. Например: Include="..\..\form2.cs" .

Чтобы объявить несколько элементов

Используйте атрибуты Include, как показано ниже:

Укажите входные данные с помощью подстановочных знаков

Вы также можете использовать подстановочные знаки для рекурсивного включения всех файлов или только определенных файлов из подкаталогов в качестве входных данных для сборки. Дополнительные сведения о подстановочных знаках см. в разделе Элементы

Следующие примеры основаны на проекте, который содержит графические файлы в следующих каталогах и подкаталогах, при этом файл проекта находится в каталоге Project:

Чтобы включить все файлы .jpg в каталог Images и подкаталоги

Используйте следующий атрибут Include:

Чтобы включить все файлы .jpg, начинающиеся с img

Используйте следующий атрибут Include:

Чтобы включить все файлы в каталогах, имена которых заканчиваются на jpg

Используйте один из следующих атрибутов включения:

Передать элементы задаче

В файле проекта вы можете использовать нотацию @() в задачах, чтобы указать весь список элементов в качестве входных данных для сборки. Вы можете использовать это обозначение независимо от того, перечисляете ли вы все файлы отдельно или используете подстановочные знаки.

Используйте атрибуты «Включить», как показано ниже:

Вы должны использовать подстановочные знаки с элементами, чтобы указать входные данные для сборки; вы не можете указать входные данные с помощью атрибута Sources в задачах MSBuild, таких как Csc или Vbc. Следующий пример недопустим в файле проекта:

Пример 1

В следующем примере кода показан проект, включающий все входные файлы по отдельности.

Пример 2

В следующем примере кода используется подстановочный знак для включения всех файлов .cs.

Чтобы использовать следующие функции WinSCP, вам необходимо указать маску (шаблон) для выбора файлов (или других вещей):

Вы можете использовать диалоговое окно File Mask, чтобы помочь вам собрать маску.

Основной синтаксис

При указании маски вы можете использовать следующие шаблоны:

< /tr>
Шаблон Значение Пример
* Соответствует любому количеству (включая ноль) произвольных символов. *.doc; about*.html
? Соответствует ровно одному произвольному символу. photo. jpg
[abc] Соответствует одному символу из набора. index_[abc].html
[az] Соответствует одному символу из диапазона. index_[az].html

Все остальные символы обрабатываются буквально (за исключением специальных символов, используемых в конструкциях, описанных ниже).

Чтобы избежать символа со специальным значением в шаблонах ( *?[ ), окружите его заданным шаблоном, например. файл со звездой[*].

Маски файлов нечувствительны к регистру.

Ограничения по размеру и времени

За маской файла могут следовать следующие ограничения по размеру и времени:

Шаблон Значение Пример
>size[KMG] Соответствует файлам, размер которых превышает размер .
Обратите внимание, что считается, что каталоги имеют нулевой размер.
Можно использовать следующие единицы измерения: K (килобайт), M (мегабайт) или G (гигабайт).
*.bin>1M
Соответствует файлам меньше размера .
>yyyy-mm-dd[ hh:mm[:ss]] Соответствует файлы изменены в последний раз после даты или времени (т.е. «новее чем»). >2012-01-01
>2012-02-29 08:47
>time[YDHNS][S] Соответствует файлам, измененным в последний раз в течение указанного интервала (т.е. «новее чем»).
Не может использоваться для каталогов.
Должна использоваться одна из следующих единиц измерения: Y (годы), D (дни), H (часы), N (минуты) или S (секунды).
Необязательный суффикс S означает округление времени перед интервалом до начала единицы интервала. Например, 2DS означает начало (полночь) позавчерашнего дня. 0HS относится к началу текущего часа. Ключевые слова сегодня и вчера можно использовать вместо 0DS и 1DS соответственно.
*.doc>1Г
>2HS
>вчера
<гггг-мм-дд[ чч:мм[:сс]] Соответствует файлам, измененным в последний раз перед датой или временем (т.е. «старше чем»). *.doc
Соответствует файлам, измененным в последний раз перед указанный интервал (т.е. «старше чем»).

Также можно использовать операторы >= и

Чтобы экранировать символ оператора ( <> ), удвойте его, например файлс

Чтобы объединить ограничения, добавляйте их одно за другим без каких-либо разделителей (или используйте пробелы). Например. чтобы выбрать все файлы .doc, созданные в 2013 году: *.doc>=2013-01-01

Обратите внимание: если ваше ограничение содержит пробелы (особенно ограничение с датой и временем), чтобы использовать его в скрипте, вам нужно заключить всю маску в двойные кавычки.

Сочетание масок

Например, следующая маска включает все изображения JPG и GIF: *.jpg; *.jpg .

Чтобы избежать разделительного символа, удвойте его, например. файл с запятой .

Включить и исключить маски

Например, следующая маска включает все изображения JPG и GIF, но не включает изображения, начинающиеся с 2010 и 2011: *.jpg; *.jpg | 2010*; 2011* .

И часть включения, и часть исключения могут быть пустыми, что означает, что все включено или ничего не исключено соответственно. Когда включаемая часть пуста, маски сразу начинаются с пайпа. Когда часть исключения пуста, вы можете опустить завершающую черту.

Маска исключения имеет приоритет над маской включения. т.е. когда один и тот же файл соответствует как маске исключения, так и маске включения, он исключается. С другой стороны, использование маски включения эффективно исключает все невключенные файлы и папки.

Чтобы избежать вертикальной черты, удвойте ее, например. файл с||каналом .

Маска каталога

Чтобы использовать маску для каталогов, добавьте косую черту в конце, например картинки/ . Маска */ соответствует любому каталогу.

Обратите внимание, что при использовании диалогового окна «Маска файла» косая черта в конце масок каталогов добавляется автоматически.

Чтобы сделать операцию нерекурсивной, используйте маску исключения */ .2

Маски каталогов рекурсивны. Например. маскировать изображения/ соответствует каталогам /home/martin/images/ , а также /home/martin/images/avatars/ .

Во время передачи и синхронизации файлы и каталоги обрабатываются рекурсивно. Когда каталог исключен, подкаталоги и файлы, содержащиеся в исключенном каталоге, даже не оцениваются по маскам файлов. Они исключаются вместе с каталогом контейнера.

Маска пути

Когда маска выбирает файлы и имеет смысл выбирать их на основе каталога, вы можете расширить маску с помощью маски пути. Вы должны отделить маску пути от маски имени файла косой чертой. Например, маска /home/martinp/*.txt соответствует всем текстовым файлам в каталоге. Чтобы сопоставить все текстовые файлы в поддереве, используйте маску /home/martinp/*.txt; /home/martinp/*/*.txt .3

В текущей стабильной версии маска пути сопоставляется с полным путем, т. е. не с относительным путем пути к корню передачи или синхронизации файлов. Например. маска public_html/wiki/ не соответствует каталогу /home/martinp/public_html/wiki, даже если корнем передачи файлов или синхронизации является /home/martinp . Частичная маска пути, соответствующая абсолютному пути, может выглядеть как */public_html/wiki/ .

Для частичной маски пути не имеет значения, используете ли вы обратную ( \ ) или прямую косую черту ( / ); маска всегда будет работать как для локальных, так и для удаленных путей. Например, маска */public_html/*.bak будет соответствовать файлам резервных копий как в D:\Documents\public_html\, так и в /home/martinp/public_html/ .

В текущей бета-версии пути, начинающиеся с точки и косой черты ( ./ или .\ ), сопоставляются с корнем операции (например, при передаче файлов или синхронизации). Например, при загрузке файлов и папок с локального пути D:\Documents\public_html\ на удаленный путь /home/martinp/public_html/ маска .\data\*.txt соответствует файлам *.txt в D:\Documents\public_html\ данные\ .

Вы также можете указать полный путь к определенному файлу или каталогу, как локальному, так и удаленному. Например, если вы хотите сопоставить только определенный каталог .csv, а не все, используйте /home/martinp/data/.csv/ вместо .csv/ .

Маска полного пути соответствует только локальному или удаленному пути, в зависимости от используемого синтаксиса.4 Это особенно важно для синхронизации. Для масок исключения может потребоваться использовать отдельную маску полного пути как для локального, так и для удаленного пути. Для масок включения использование маски полного пути не имеет смысла при синхронизации, поскольку она фактически исключает все файлы на другой стороне синхронизации, нарушая ее. Как правило, при синхронизации используйте частичные маски пути.

Исключения

Для удобства маска *.* является исключением, соответствующим любому файлу или каталогу, даже если в его имени нет точки. Напротив, маска *. соответствует любому файлу или каталогу без расширения.

Подпапки, в которых исключены все файлы

Automation Workshop позволяет использовать маски файлов в качестве параметра для нескольких входов триггеров и действий. Маски файлов предоставляют очень гибкие средства для идентификации файлов или групп файлов на основе их имени и расширения.

Основы

Маски файлов состоят из любой комбинации трех основных типов символов:

  • Фиксированные символы, такие как буквы, цифры и другие символы, допустимые в именах файлов.
  • <ли>? (вопросительный знак), который заменяет любой отдельный символ.
  • * (символ звездочки), заменяющий любое количество различных символов.

Хотя очевидно, что маска файла, состоящая только из фиксированных символов, однозначно идентифицирует файл (например, маска файла picture.jpg относится только к файлу с именем picture.jpg ), маски файлов с подстановочными знаками (т. е. ? и * символы) могут относиться к одному или нескольким файлам.

Например, маска файла ?at.jpg относится ко всем файлам с тремя буквами в имени, оканчивающемся на at , и расширением .jpg, результирующая маска файла ?at.jpg для выбора файлов с именами cat.jpg , мат. jpg , hat.jpg , rat.jpg и все остальные файлы, начинающиеся с любого символа и заканчивающиеся на at.jpg .

Звездочка * подстановочный знак в составе маски файла заменяет неопределенное количество различных символов. Например, маска файла h*e.jpg относится ко всем файлам .jpg, которые начинаются с h, заканчиваются на e и содержат любое число (включая ноль) между ними, например he.jpg, hue.jpg, here.jpg, house .jpg и т. д.

Несколько масок

Многие действия поддерживают одновременное указание нескольких масок файлов, разделенных символом | характер трубы. Например, *.jpg | *.jpg выберет файлы с расширением .jpg и .jpg. Можно комбинировать еще больше (практически неограниченное количество) масок файлов в одном входе, например:
*.docx | *.xlsx | *.pptx и т. д.

Выбирать файлы по маске без цифровой клавиатуры

stridder Junior Member
Сообщений: 4 Присоединился: 25 мая 2015 г., 07:36 UTC

Выбрать файлы по маске без цифровой клавиатуры

Привет, ребята,
Я использую ноутбук Thinkpad T430, у которого нет цифровой клавиатуры, даже невозможно включить ее с помощью клавиши Fn, поэтому я не могу нажать NUM+, например.
Можно ли выбрать группу файлов по маске (например, *.sh) без специальных цифровых клавиш?
Сочетание клавиш предпочтительнее, хотя подойдет и пункт меню, если нет другого пути.

Вы можете найти некоторые команды выбора в меню «Отметить», также вы можете назначить ярлыки для любых команд выбора, используя «Конфигурация» - «Разное». диалог.

nsp Power Member
Сообщений: 1554 Присоединился: 04.12.2005, 08:39 UTC Местоположение: Лион (ФРАНЦИЯ) Контактное лицо:

MVV пишет: Вы можете найти некоторые команды выбора в меню «Отметить», также вы можете назначить ярлыки для любых команд выбора, используя «Конфигурация» - «Разное». диалог.

nsp,
Есть гораздо больше полезных команд выбора, не только cm_SelectFiles.

Эти команды обрабатывают как файлы/папки без Shift, так и только файлы с Shift по умолчанию (поведение Shift можно изменить на противоположное с помощью параметра INI MarkDirectories=0 для большей согласованности с Norton Commander):
cm_SpreadSelection ([Shift+]Num +)
cm_ShrinkSelection ([Shift+]Num -)
cm_ExchangeSelection ([Shift+]Num *)

Также в числовом блоке:
cm_SelectCurrentExtension (Alt+Num +)
cm_UnselectCurrentExtension (Alt+Num -)
cm_RestoreSelection (Num /)

Таким образом, по крайней мере 9 команд будут потеряны, если числовой блок недоступен.

stridder Junior Member
Сообщений: 4 Присоединился: 25 мая 2015 г., 07:36 UTC

Есть ли файл конфигурации, который я мог бы загрузить, который назначает другие клавиши для выбора (и, возможно, другие сочетания клавиш, требующие цифровых клавиш)?
Многие используют ноутбуки, поэтому эта проблема должна быть распространена.
Что такое псевдоним и как он настраивается?

stridder,
Вы можете попробовать поискать по форуму, но я не могу вспомнить ни одной темы с такими идеями - вы можете поделиться своими идеями с другими пользователями. Вы должны просто попробовать разные комбинации (например, Alt+Backspace и Alt+Delete для выбора и отмены выбора файлов) и выяснить, какая из них лучше для вас.
Однако разные люди настраивают TC совершенно по-разному, поэтому ярлыки одного могут конфликтовать с ярлыками другого (например, вы делаете что-то с ключом, а другой пользователь делает совершенно другое с тем же ключом).

Псевдонимы — это короткие имена для команд — для тех, кто любит выполнять команды из командной строки TC.

ts4242 Power Member
Сообщений: 2081 Присоединился: 2 февраля 2004 г., 20:08 UTC Контактное лицо:

2стриддер

Используйте редактор горячих клавиш,
чтобы назначить разные горячие клавиши для этих команд.

Stefan2 Power Member
Сообщений: 3468 Присоединился: 13 сентября 2007 г., 22:20 UTC Местоположение: Европа

Как использовать ALIAS в командной строке, запускать внутренние команды

Я думаю, что использование ALIAS в командной строке — хорошая идея.

Конфигурация > Параметры. > Макет [X]Командная строка

Определите псевдоним в графическом интерфейсе «Конфигурация > Параметры > Разное». или непосредственно в папке TC\wincmd.ini

Дополнительные команды CM_ см. в папке TC\TOTALCMD.INC

Команду EM_ создать в папке TC\usercmd.ini
[em_ShowTXT]
cmd=cd *.txt *.ini *.log *.reg


Эти команды также могут быть интегрированы в меню ТС. Готовое см.:
Расширенные английские меню для Total Commander (автор: petermad)
СКАЧАТЬ с: http://www.totalcmd.net/authors/1223914.html
(Также вы можно узнать много трюков из этой загрузки, например, "cd *.txt")

Все вводимые вами буквы перенаправляются в командную строку.
(Зависит от настройки "Конфигурация > Параметры > Быстрый поиск")

Нажав ENTER, вы можете запустить командную строку. Старые командные строки сохраняются в списке истории. Нажав CTRL+Курсор вниз, вы можете открыть этот список истории.

Выберите запись с помощью клавиш курсора вверх или вниз, затем нажмите клавишу курсора влево или вправо, чтобы закрыть список истории. Вы можете нажать Shift+Del, чтобы удалить ненужный элемент из списка истории.

В меню «Конфигурация» — «Параметры» — «Разное» вы можете определить команды-псевдонимы для запуска часто используемых программ и внутренних команд, например np, чтобы открыть файл notepad.exe.

Команда "cd" используется для изменения текущего каталога в активной панели. Если вы укажете имя файла, TC поместит курсор на этот файл

Если командная строка отключена, она будет автоматически включаться при вводе некоторых символов.

Максимальная длина командной строки ограничена 2047 символами в Windows 2000 и 8191 символом в Windows XP (максимум, поддерживаемый этими операционными системами).

Вы хотите получить список файлов, соответствующих определенному шаблону.

Решение

Используйте командлет Get-ChildItem как для простой, так и для расширенной поддержки подстановочных знаков:

Чтобы найти в текущем каталоге все элементы, соответствующие подстановочному знаку PowerShell, укажите этот подстановочный знак в командлете Get-ChildItem:

Чтобы найти в текущем каталоге все элементы, соответствующие фильтру зависимого от поставщика, укажите этот фильтр в параметре -Filter:

Чтобы найти в текущем каталоге все элементы, не соответствующие подстановочному знаку PowerShell, укажите этот подстановочный знак в параметре -Exclude:

Чтобы найти все элементы в подкаталогах, соответствующие подстановочному знаку PowerShell, используйте параметры -Include и -Recurse или используйте подстановочный знак как часть параметра -Path:

Чтобы найти все элементы в подкаталогах, соответствующие фильтру зависимого от поставщика, используйте параметры -Filter и -Recurse:

Чтобы найти все элементы в подкаталогах, которые не соответствуют подстановочному знаку PowerShell, используйте параметры -Exclude и -Recurse:

Используйте командлет Where-Object для расширенной поддержки регулярных выражений:

Чтобы найти все элементы, имя файла которых соответствует регулярному выражению, используйте командлет Where-Object для сравнения свойства Name с регулярным выражением:

Чтобы найти все элементы с именем каталога, совпадающим с регулярным выражением, используйте командлет Where-Object для сравнения свойства DirectoryName с регулярным выражением:

Чтобы найти все элементы с именем каталога или именем файла, совпадающим с регулярным выражением, используйте командлет Where-Object для сравнения свойства FullName с регулярным выражением:

Обсуждение

Командлет Get-ChildItem поддерживает подстановочные знаки с помощью трех параметров:

Параметр -Path является первым параметром (и параметром по умолчанию). Хотя вы можете вводить простые пути, такие как . , C:\ или D:\Documents можно также указать пути, содержащие подстановочные знаки, например * , *.txt , [a-z]. log или даже C:\win*\*.N[a-f]?\F*\v2*\csc.exe .

Параметры -Include и -Exclude действуют как фильтр для использования подстановочных знаков в параметре -Path. Если указать параметр -Recurse, подстановочные знаки -Include и -Exclude применяются ко всем возвращаемым элементам.

Самая распространенная ошибка с параметром -Include возникает, когда вы используете его для пути без подстановочных знаков. Например, похоже, что это не дает ожидаемых результатов:

Эта команда не дает результатов, потому что вы не указали подстановочный знак для пути. Вместо этого правильная команда:

Параметр -Filter позволяет фильтровать результаты на основе зависимого от поставщика языка фильтрации поставщика, из которого вы получаете элементы. Поскольку поддержка подстановочных знаков в PowerShell очень похожа на подстановочные знаки файловой системы, и большинство людей используют параметр -Filter только для файловой системы, этот параметр кажется избыточным (и эквивалентным). Однако поставщик SQL будет использовать синтаксис SQL в параметре -Filter. Аналогичным образом поставщик Active Directory будет использовать пути LDAP в параметре -Filter.

Это может быть неочевидно, но язык фильтрации поставщика файловой системы не совсем совпадает с синтаксисом подстановочных знаков PowerShell. Например, параметр -Filter не поддерживает диапазоны символов:

Фильтрация, зависящая от поставщика, часто может возвращать результаты гораздо быстрее, чем более многофункциональные подстановочные знаки PowerShell. Из-за этого PowerShell внутренне переписывает ваши подстановочные знаки в комбинацию подстановочных знаков и фильтрации для конкретного поставщика, чтобы дать вам лучшее из обоих миров!

Для получения дополнительных сведений о синтаксисе подстановочных знаков PowerShell введите Get-Help about_WildCards .

Если вы хотите выполнить еще более сложную фильтрацию, чем та, которую предлагает синтаксис подстановочных знаков PowerShell, командлет Where-Object предоставляет безграничные возможности. Например, чтобы исключить определенные каталоги из поиска, используйте следующее:

Или, в более простой форме:

Для фильтра, который сложно (или невозможно) указать программно, используйте командлет Out-GridView, как показано в рецепте 2.4, для интерактивной фильтрации вывода.

Благодаря конвейерной модели PowerShell расширенный набор файлов, сгенерированный Get-ChildItem, автоматически превращается в расширенный набор файлов, с которым могут работать другие командлеты:

Для получения дополнительных сведений о командлете Get-ChildItem введите Get-Help Get-ChildItem .

Для получения дополнительной информации о командлете Where-Object введите Get-Help Where-Object .

Читайте также: