Я не могу заархивировать большое количество файлов, так как некоторые имена файлов содержат символ тире Em.Я пытался использовать примеры сценариев PowerShell для замены Em dash (0x2014) на En dash (0x2013), как описано здесь , но, похоже, он не работает для меня в моей среде Windows 7,т. е. скрипт PowerShell, по-видимому, не распознает наличие символа «тире» в имени файла.
например, все - в следующем имени файла ...
XXXXX - DMP - [версия] - Частично выполнено [Дата последней подписи]
... не преобразуется в тире En.
..., но просто сохраняет ' - '.
Я предоставил приведенный ниже скрипт и использую PowerShell версии 5.1.Любая помощь приветствуется
function Replace-Text
{param(
[Parameter(Mandatory=$true)]
$text,
$em = ([char]0x2014),
$replacementlist = "$em,-,-,-,',,%,,$,,@,,#,,&,,’,"
)
Invoke-Expression ('$text' + -join $(
foreach($e in $replacementlist.Split(',')) {
'.Replace("{0}","{1}")' -f $e, $(
[void]$foreach.MoveNext()
$foreach.Current)
}
)
)
}
Get-ChildItem -Path $path | Rename-Item -NewName {(Replace-Text$_.Name).trim()}