2016-08-22 1 views
0

Я пытаюсь ограничить возврат gci только элементами, содержащимися в массиве. Предположим, что папка ниже содержит несколько файлов, все имена File_A, File_B и т. Д. До File_Z. Я хочу только вернуть имя и размер файлов, содержащихся в массиве $myArray. Выполнение этого кода как есть, вернет все файлы, чего я не хочу.Get-Child Item только для файлов, содержащихся в массиве

$MyDocuments = "C:\Documents\MyFiles" 
$myArray = @() 
$myArray += "File_A.txt" 
$myArray += "File_B.txt" 
$myArray += "File_C.txt" 

cd $MyDocuments 
Get-ChildItem * -Filter $myArray | Select-Object Name, Length 
+2

'Get-Item -LiteralPath $ myArray' – PetSerAl

+0

Это сделал трюк! Благодаря! –

ответ

2

Мы также можем сделать это немного более четко/явно так:

$array = New-Object -TypeName System.Collections.Generic.List[string] 
$array.Add("File_A.txt") 
$array.Add("File_B.txt") 
Get-ChildItem | Where-Object {$array.Contains($_.Name)} | select Name, Length 
Смежные вопросы