Get_ChildItem получить список файлов в пути не рекурсивно - PullRequest
0 голосов
/ 04 апреля 2020

Я пишу скрипт PowerShell, чтобы получить все элементы в указанном пути к определенной папке. Я использую следующую команду:

$fileName= Get-ChildItem -Path "C:\Path\to\Bin"  -Force -Include User.Base.Tests.*.dll

Я не использую -Recurse, но она возвращает пустые результаты. Я хочу получить результат только из папки Bin, а не из подпапки. Если я использую команду -Recurse, она также выдаст результаты из подпапок, которые мне не нужны. Что мне здесь не хватает?

Ответы [ 2 ]

2 голосов
/ 04 апреля 2020

Мы должны включить подстановочный знак в путь, как показано ниже:

Get-ChildItem -path "C:\Path\to\Bin\*" -Force -Include User.Base.Tests.*.dll

Параметр Include действует только в том случае, если команда включает параметр Recurse или путь ведет к содержимому каталог, например C: \ Windows, где подстановочный знак указывает содержимое C: \ Windows каталог

См .: Смущено параметром -Include командлета Get-ChildItem

0 голосов
/ 04 апреля 2020

Без -Включите ниже работает как ожидалось. Однако с таким именем файла вы хотите заключить в кавычки эти конструкции. ИМХО.

Get-ChildItem -Path D:\temp User.Base.Tests.*.dll | 
Format-Table -AutoSize
<#
# Results

    Directory: D:\temp


Mode          LastWriteTime Length Name                 
----          ------------- ------ ----                 
-a----  04-Apr-20     00:45      0 User.Base.Tests.1.dll
-a----  04-Apr-20     00:45      0 User.Base.Tests.2.dll
#>


Get-ChildItem -Path 'D:\temp' 'User.Base.Tests.*.dll' | 
Format-Table -AutoSize
<#
# Results

    Directory: D:\temp


Mode          LastWriteTime Length Name                 
----          ------------- ------ ----                 
-a----  04-Apr-20     00:45      0 User.Base.Tests.1.dll
-a----  04-Apr-20     00:45      0 User.Base.Tests.2.dll
#>
...