Ниже приведен подход, который использует FileInfo для захвата BaseName для файла (например, имя файла без расширения), а затем TrimEnd для удаления пробелов в конце BaseName, а затем добавляет расширение снова.
У PowerShell есть команда Get-Item, которая получит экземпляр FileInfo для вас, но ожидает, что файл будет существовать. При необходимости вы можете напрямую использовать System.IO.FileInfo.
$inputFileName = "One Two Three .zip"
# If you know the file exists, you can use the Get-Item command.
$fileInfo = Get-Item $inputFileName
$outputFileName = $fileInfo.BaseName.TrimEnd() + $fileInfo.Extension
Write-Host $outputFileName
# Or if the file doesn't exist, you can drop down to the .NET FileInfo class.
$fileInfo = [System.IO.FileInfo]$inputFileName
$outputFileName = $fileInfo.BaseName.TrimEnd() + $fileInfo.Extension
Write-Host $outputFileName
Спасибо, что JPBlanc отлично работает - просто пытается понять, что происходит - на левой стороне трубы, кажется, строки слева и справа от "." возвращаются - тогда мне любопытно, что обе эти строки передаются через канал - так что $ содержит каждую из строк, а затем обрезает их в каждом цикле (%) - и затем присоединяет их? – user3511553
Да, у вас это есть – JPBlanc