Всякий раз, когда я ищу что-то конкретное в моих каталогах, мне нравится этот лайнер
Get-ChildItem -Recurse -ErrorAction SilentlyContinue -Path C:\Users\ -Include*.ext
так что пример в вашем случае будет
Get-ChildItem -Recurse -ErrorAction SilentlyContinue -Path C:\Users\[Uname]\Downloads -Include *.mp3,*.mov; # etc
Из текста справки
-Path <String[]>
Specifies a path to one or more locations. Wildcards are permitted. The default location is the current directory (.).
-Recurse [<SwitchParameter>]
Indicates that this cmdlet gets the items in the specified locations and in all child items of the locations.
-Include <String[]>
Specifies, as a string array, an item or items that this cmdlet includes in the operation. The value of this parameter qualifies the Path parameter. Enter a path element or pattern, such as *.txt. Wildcards are permitted.
The Include parameter is effective only when the command includes the Recurse parameter or the path leads to the contents of a directory, such as C:\Windows\*, where the wildcard character specifies the contents of the C:\Windows directory.
Я проведу поиск по папке сценариев, ища файлы PowerShell и Bash в качестве примера:
Get-ChildItem -Recurse -ErrorAction SilentlyContinue -Path .\Desktop\scripts\ -Include *.ps1,*.sh
Результат:
Directory: C:\Users\[user]\Desktop\scripts\Bash
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 1/22/2018 8:03 PM 84 runit.sh
Directory: C:\Users\[user]\Desktop\scripts\PS
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 4/19/2018 9:04 PM 173 pass_d.ps1
-a---- 9/7/2017 4:45 PM 345 refresh.ps1
-a---- 5/11/2018 9:05 PM 1589 test.ps1
-a---- 4/20/2018 8:55 PM 273 wifi_list.ps1
Это не будет принимать аргумент kind:=music,kind:=video
, но вы можете предоставить звездочки с расширениями файлов в виде массива для -Include *.mp3,*.mov
и аналогичным образом искать в нескольких каталогах -Path /some/directory,some/directory2
.
Выполнение этой же однострочной команды по конвейеру | Export-Csv [filename].csv
сохранит ваши результаты в виде файла .csv.
Совет: в PowerShell доступно завершение табуляции, поэтому вам не нужно вводить каждый аргумент. get-ch<tab>
Get-ChildItem
, Get-ChildItem -i<tab>
>> Get-ChildItem -Include
и т. д.