2014-12-09 2 views
0

Ищу для Powershell эквивалент для cmd.exe «sЧто такое эквивалент »реж/с/б * Foo * .docx« в PowerShell

dir /s /b *foo*.docx 

Я хотел бы создать псевдоним (или scriptlet?) для этого.

Я нашел How do I do 'dir /s /b' in PowerShell?, но при таком подходе я, похоже, не могу передать аргумент *foo*.docx.

+6

'gci -recurse -filter * foo * .docx | выберите -expandproperty fullname' – arco444

+0

@ arco444, который должен быть ответом, и вы должны написать его до того, как кто-то еще это сделает. Я тестировал против '-include', чтобы видеть, и' -filter' был быстрее. – Matt

ответ

0
Get-ChildItem -Recurse -Filter *foo*.docx | Select-Object FullName | Sort-Object Length 
+0

Arco имеет этот ответ правильно, и пока он еще не ответил, я бы подумал, что это хорошая форма, чтобы дать ему больше времени. Также одна вещь, которая не работает, заключается в том, что вы возвращаете массив объектов с единственным свойством вместо строкового массива, что и делает cmd в OP _sort of_. – Matt

+0

Выбор только свойства fullname, а затем сортировка по длине (которая больше не существует) не будет хорошо работать. –

3

Как указано в моем комментарии выше, вы ищете:

gci -recurse -filter *foo*.docx | select -expandproperty fullname

gci или Get-ChildItem возвращает список объектов файловой системы, которые соответствуют фильтру коммуникатора. Каждый объект будет иметь всю нагрузку информации, прикрепленной к нему, но поскольку вас интересует только этот путь, вы можете просто взять свойство fullname по трубопроводу до select, как показано. Флаг -expandproperty гарантирует, что результат будет возвращен как строковый массив, а не список объектов.

+0

Альтернативно, если у вас есть Powershell 3 или более поздняя версия, просто сделайте '(dir -recurse -filter * foo * .docx) .fullname' (где' dir', 'gci',' Get-ChildItem', 'ls', конечно, сменный в любой версии, просто используйте свой любимый). – Duncan

Смежные вопросы