如何使用PowerShell删除文件名中的前导或尾随空格?

问题描述

我基本上是在尝试对名称末尾带有前导或尾随空格的任何文件名进行trim()。这是我到目前为止的代码

$foldersToCheck = "$env:userprofile\documents","$env:userprofile\pictures","$env:userprofile\desktop"
foreach ($folder in $foldersToCheck) {
    get-childitem -path $folder -recurse | foreach-object {
        if ($_.name.startswith(" ") -or $_.name.endswith(" ")) {
            $newName = $_.name.trim()
            rename-item -path $_ -newName $newname
        }
    }
}

如果我创建一个测试文件(c:\ users \ someusername \ desktop \ test.txt),那么我会收到此错误

rename-item : Cannot rename because item at ' test.txt' does not exist.
    At line:6 char:13
    +             rename-item -path $_ -newName $newname
    +             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (:) [Rename-Item],PSInvalidOperationException
        + FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RenameItemCommand

因此,似乎它找到了需要重命名的文件,但随后说它不存在。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)