PowerShell любой элемент массива заканчивается любым элементом в другом массиве

#powershell

#powershell

Вопрос:

У меня есть список имен1 файлов и список полных имен2 (с указанием пути)

Мне нужно извлечь все элементы из list2, существующие в list1. На простом английском языке все файлы перечислены с обеих сторон, указаны с полным путем

Я пробовал

 $filenames = @('index.jsp','index1.jsp', 'index2.jsp')
$fullpaths = Get-ChildItem -rec . | where { ! $_.PSIsContainer }
$common = $fullpaths | Where { $p = $_.FullName; foreach ($n in $filenames) { $p -match $($n   "$") } }
$common | foreach { Write-Output $_ }
  

Но он выводит все файлы в.

Как я могу правильно использовать Where, чтобы сопоставить один элемент со всеми элементами в другом списке?

Ответ №1:

Я не знаю, имели ли вы в виду что-то подобное

   $filenames = @('index.jsp','index1.jsp', 'index2.jsp')
  $common = Get-ChildItem -Recurse -File | where Name -In $filenames
  $common.FullName
  

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

1. @marsze add -File : D

2. спасибо за изменение требований, обеспечивающих безопасность истории пользователя