我有一个文件名字符串,在扩展名之前包含几个尾随空格:
One Two Three .Zip
我想在之间保留之间的空格,但是在“Three”之后但在“.Zip”之前删除任何多余的空格。使用PowerShell,如何将该字符串更改为:
One Two Three.Zip
答案 0 :(得分:1)
这是一种方法,它使用FileInfo来获取文件的BaseName(即没有扩展名的文件名),然后TrimEnd删除BaseName末尾的空格,然后重新附加Extension。
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
答案 1 :(得分:0)
您可以尝试:
("One Two Three .zip".Split('.') | % {$_.trim()}) -join '.'
你对uderrtand的看法是,在Poweshell中,一切都是对象。首先,我在字符串上应用方法Split
。这个方法生成一个包含两个子串的数组,然后为每个子串(%
)应用方法Trim
,然后我用'.'
加入两个数组元素。