Укажите имя папки для переменной $Folder
этого блока скриптов, и она будет перечислять элементы в этой папке, найдет последний символ '.'
в имени файла и переименует его как все до '.'
.
Например: Filename.123.wrcrw.txt.123
будет переименовано в Filename.123.wrcrw.txt
, или в вашем случае ваши файлы потеряют посторонние символы с окончательного '.'
и далее. Если новое имя для файла уже существует, он напишет предупреждение о том, что не может переименовать файл, и продолжит работу без попыток.
$Folder = "C:\ProgramData\Temp"
Get-ChildItem -Path $Folder | Foreach {
$NewName = $_.Name.Substring(0,$_.Name.LastIndexOf('.'))
IF (!(Test-Path $Folder\$NewName))
{
Rename-Item $Folder\$_ -NewName $NewName
}
Else
{
Write-Warning "$($_.Name) cannot be renamed, $NewName already exists."
}
}
Это должно эффективно имитировать поведение, которое вы описали для stripv *
. Это можно легко превратить в функцию с именем stripv
и добавить в свой профиль PowerShell, чтобы сделать ее доступной в командной строке в интерактивном режиме и использовать так же, как и сценарий Solaris.