Мне помогли с этим вопросом
Переименование диапазона из файлов с Powershell - от первого до третьего с последнего дефиса
и это сработало чудесно, но теперь у меня появилась новая проблема.
В именах моих csv-файлов теперь есть случайные числа дефисов, например:
abc-def-ghi-jkl-mno-pqr-s-tuv-ke-traffic-by-domains-17-Oct-2018_23-49-38-6d73395f476ad09a7506dc00533933b8.csv
abc-def-ghi-jkl-ke-traffic-by-domains-15-Oct-2018_05-20-36-75eabae7c4123198ff5fe6f4f642449f.csv
abc-def-ghi-jkl-mno--ke-traffic-by-domains-12-Oct-2018_06-23-58-b13eb8f362c09fbe405458fac8af8f8e.csv
Количество дефисов меняется от файла к файлу.
Я бы хотел переименовать их с powershell в
abc-17-Oct-2018.csv
abc-15-Oct-2018.csv
abc-12-Oct-2018.csv
Я попробовал следующее:
1. Удалить все после "_"
Get-ChildItem -Filter *.csv | Foreach-Object -Process {
$NewName = [Regex]::Match($_.Name,"^[^_]*").Value + '.csv'
$_ | Rename-Item -NewName $NewName
}
2. Удалите все после первого «-» до «ke-traffic-by-domains» -
Get-ChildItem -Filter *.csv | Rename-Item -NewName {
$word = "-*ke-traffic-by-domains-"
$NewName = $_.Name -split $word + '.csv'
$_ | Rename-Item -NewName $NewName
}
Но я застрял на № 2, удаляя диапазон с регулярным выражением.
Может кто-нибудь любезно показать мне способ изменения имен файлов?