В основном заголовок: если исходное имя файла простое (без точек, тире и т. Д.), Скрипт работает нормально. Если исходное имя файла содержит точки и т. Д., Сценарий выполняется дважды.
$PREF1 = Read-Host -Prompt 'Input PREF1'
$PREF2 = Read-Host -Prompt 'Input PREF2'
$PREF3 = Read-Host -Prompt 'Input PREF3'
$PREF4 = 'B'
$PREFIX = 'A'
$PREFIX += '[' + $PREF1 + ']' + $PREF4 + '[' + $PREF2 + ']' + '[' + $PREF3 + ']'
$SUFFIX = Get-Date -f yyyyMMdd
$ScriptDirectory = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent
Write-Host Prefix: $PREFIX.ToUpper()
Write-Host Suffix: _$SUFFIX
Get-ChildItem -Path $ScriptDirectory *.ods | Rename-Item -NewName { $PREFIX.ToUpper() + $_.Name -replace ".ods", "_$SUFFIX.ods"}
Таким образом, правильный путь выглядит следующим образом: у меня есть файл с именем X, сценарий добавляет настраиваемый префикс и суффикс к имени файла. Если файл называется XY, префикс и суффикс добавляются дважды. Что вызывает это?
РЕДАКТИРОВАТЬ: опечатки