С данным деревом:
> tree a:\ /f
A:\
├───Folder1
│ april_logs-0410.txt
│ may_logs-0510.txt
│
└───Folder2
april_logs-0310.txt
эта одна строка
gci Folder1\*-[0-9]*|? Name -match '^(.*)-\d'|%{(gci Folder2\$($matches[1])*).FullName}
дает:
A:\Folder2\april_logs-0310.txt
Этот более многословный и немного другой скрипт:
## Q:\Test\2019\04\10\SO_55605777.ps1
$FolderOne = 'A:\Folder1'
$FolderTwo = 'A:\Folder2'
foreach($File in (
Get-ChildItem $FolderOne\*-[0-9]* |
Where-Object Name -match '^(.*)-\d'|
Select-Object FullName,@{n='Pattern';e={$Matches[1]}} )){
if($Found = (Get-ChildItem $FolderTwo\$($File.Pattern)*).FullName){
"{0} is matched by:" -f $File.FullName
$Found
}
}
выход:
> Q:\Test\2019\04\10\SO_55605777.ps1
A:\Folder1\april_logs-0410.txt is matched by:
A:\Folder2\april_logs-0310.txt