Возможно ли использовать PowerShell (Windows 7) для нацеливания на определенный разделитель в имени файла и изменить этот разделитель, скажем, с подчеркивания на дефисы / тире?

Например:

1942.009.405_SIENESE 16TH CENTURY__1988_09_08_DATA REPORT_TX_4305010_0002.pdf

в

1942.009.405_SIENESE 16TH CENTURY__1988-09-08_DATA REPORT_TX_4305010_0002.pdf

Если дата в имени файла отсутствует или часть даты отсутствует, сможет ли какая-либо используемая командная строка справиться с этой аномалией?

1 ответ1

1

Вы можете использовать замену регулярного выражения:

$test = '1942.009.405_SIENESE 16TH CENTURY__1988_09_08_DATA REPORT_TX_4305010_0002.pdf'
$test -replace '^(.+\d{4})_(\d{2})_(\d{2}.+)$', '$1-$2-$3'

Он находит все символы до четырехзначного числа, затем подчеркивание, затем двузначное число, затем еще одно подчеркивание, затем двузначное число и остальные символы. Затем он заменяет все первым битом, в котором он нашел $1 = (.+\d{4}) , вторым тире, вторым битом $2 = (\d{2}) затем всем остальным $3 = (\d{2}.+)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .