Эквивалент Windows для Linux: поиск имени

#windows #powershell #command-line #command-prompt

#Windows #powershell #командная строка

Вопрос:

Я пытаюсь найти команду в командной строке, которую я знаю в Linux Ubuntu, но мне нужно применить ее в Microsoft.

Более того, я пытаюсь найти все файлы в папке с определенным именем. В частности, я пытаюсь найти все файлы, в названии которых содержится термин «тест». Вот команда, которую я знаю в Linux:

 find homeuserdata -name '*test*'
  

Кто-нибудь знает эквивалент в командной строке Windows?

Комментарии:

1. Я считаю, что все предыдущие ответы являются хорошими вариантами для Windows. В моем случае я хотел как можно точнее эмулировать команду Linux, чтобы воспроизвести среду моего сервера CI. Итак, я обнаружил, что старая добрая команда find доступна и для Windows. gnuwin32.sourceforge.net/packages/findutils.htm

Ответ №1:

Вы будете искать Get-ChildItem

 Get-ChildItem C:Test -Filter "*test*"
  

Комментарии:

1. Вы можете добавить -Recurse для поиска во вложенных папках.

Ответ №2:

В PowerShell вы можете использовать Get-ChildItem для поиска файлов и папок.

Если вы хотите использовать регулярные выражения, вы можете объединить их Get-ChildItem с командлетами Select-String или Where-Object .

 Get-ChildItem -Path C: -Recurse | Select-String -pattern "Regex"
  
 Get-ChildItem -Path C: -Recurse | Where-Object -FilterScript {$_.name -match "regex"}
  

Ответ №3:

Вы ищете команду «dir». Чтобы выполнить то же самое, что и при первоначальном поиске, вы бы использовали

 dir homeuserdata "*test*"
  

Комментарии:

1. dir — это псевдоним для get-childitem . Get-Alias dir