Переименование диапазона из файлов с Powershell - PullRequest
0 голосов
/ 31 октября 2018

Мне помогли с этим вопросом

Переименование диапазона из файлов с 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, удаляя диапазон с регулярным выражением.

Может кто-нибудь любезно показать мне способ изменения имен файлов?

1 Ответ

0 голосов
/ 31 октября 2018

Используйте регулярное выражение для соответствия вашим критериям (см. Regex101.com )

Get-ChildItem *.csv |
  Where-Object Name -match '^([^\-]+)-.*?-traffic-by-domains-(\d{1,2}-\D{3}-20\d{2})_'|
    Rename-Item -NewName {"{0}-{1}.csv" -f $Matches[1],$Matches[2]} -WhatIf

Если вывод выглядит нормально, уберите завершающий -WhatIf

Файлы на моем Ramdrive после запуска сценария над вашими именами csv:

> gci

    Verzeichnis: A:\

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       2018-11-05     09:38              0 abc-12-Oct-2018.csv
-a----       2018-11-05     09:38              0 abc-15-Oct-2018.csv
-a----       2018-11-05     09:38              0 abc-17-Oct-2018.csv
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...