У меня есть несколько файлов CSV с разными именами, которые содержат сегодняшнюю дату, номер клиента и затем расширение. Например:
2019-01-23 XYZF-105.csv
2019-01-23 ABCD-205.csv
2019-01-23 Different nonstandard name.csv
2019-01-23 ##ABCD-305(Trial).csv
Я хотел бы получить часть имени, где он содержит только номер клиента, например ABCD-305.
Попытка использовать подстроку для выбора 8 символов прямо из точки, но это не работает для тех, у которых есть суффикс, например (Trial).
Также он не работает с 11 символов с самого начала, так как он будет содержать ##.
Также нужно избегать нестандартных названий.
Я использовал
$allitems = Get-ChildItem -Path 'C:\Downloads\Customers\*.csv'
$res = @()
foreach ($item in $allitems){
$item = $item.Name.substring($item.Name.Length - 12,8)
$res += $Item
}
Таким образом, для собственных имен я получаю хорошие результаты, но только если имя CSV-файла похоже на 2019-01-23 ABCD-205.csv.
Каким должен быть способ пропустить дату, пропустить расширение .csv и получить только результаты с 8 символами, которые имеют тире после 4-го символа?
Заранее спасибо