Hi,
I would do something with the Get-Childitem -Filter option like to get the list of files. This would get all files starting or ending with 'copy' and any file extension.
Get-ChildItem -Path $dir1 -Recurse -Filter "*Copy*.*"
This should get you roughly where you want however you might need to edit as you've spill on \ but your example shows two local folder paths on C: so you might need to amend slightly depending on what your doing and/or if network paths are involved.
$dir1 = "C:\Onedrivetesting"
$dir2 = "C:\Des"
$results = Get-ChildItem -Path $dir1 -recurse -filter '*copy*.*'
$results | ForEach-Object{
$parentFolder = $_.FullName.split("\\")[-2]
Copy-Item -Path $_.FullName -Destination ([io.path]::combine($dir2,$parentFolder)) -WhatIf
}
Also remove the -WhatIf after testing :)