Переименование Powershell выполняется дважды, если в исходном файле есть специальные символы - PullRequest
0 голосов
/ 09 октября 2019

В основном заголовок: если исходное имя файла простое (без точек, тире и т. Д.), Скрипт работает нормально. Если исходное имя файла содержит точки и т. Д., Сценарий выполняется дважды.

$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, префикс и суффикс добавляются дважды. Что вызывает это?

РЕДАКТИРОВАТЬ: опечатки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...