Регулярные выражения не работают при массовом переименовании файлов - PullRequest
0 голосов
/ 01 мая 2020

Я что-то упускаю при использовании регулярных выражений, потому что моя строка работает, когда я заменяю определенные строки. Я пробовал \d и [0-9]. Что я забыл?

Оригинал FOOBAR_12345678-0001.csv

Цель 12345678.csv

get-childitem *.csv | foreach { rename-item $_ $_.Name.Replace("FOOBAR_(\d{8})-\d{4}", "$1") }

1 Ответ

2 голосов
/ 01 мая 2020

У меня работает следующее:

get-childitem *.csv | foreach { rename-item $_ ( $_.Name -replace 'FOOBAR_(\d{8})-\d{4}', '$1') }

Почему:

  1. Я подозреваю, что используемый вами метод .Replace () не принимает регулярные выражения.
  2. Я не уверен на 100%, что это необходимо, но я практиковал использование одинарных кавычек с регулярными выражениями powershell в случае, если происходят какие-либо изменения в расширении оболочки.
...