Trim 子项目尾随空格的文件名 - Powershell

Trim File Name of Trailing White Spaces for Child Items - Powershell

希望有人能帮助我。

我目前 运行 一个清理文件名的脚本使用:

get-childitem -recurse | dir -Filter *.mp4 | Rename-Item -NewName { $_.BaseName.replace('Oldname','NewName') + $_.Extension }

它有大量额外的单词和内容,并且效果很好。我正在使用这种方法制作一个新脚本,但我在每个文件的末尾留下了尾随的白色 space。

据我所知,Trim 应该满足我的需要:

.Trim()

据我所知,它应该删除任何前导和尾随的白色 spaces。

我想只删除所有白色 space,但问题是某些文件名会有多个单词,由白色 space 分隔。

所以我认为循环可能会解决问题,但由于我还是 Powershell 的新手,所以我不能完全解决它。

长话短说,我希望 运行 对目录中的所有文件进行递归扫描,特别是 MP4 和 MKV,然后对目录中的每个文件应用 trim所以它会删除任何尾随的白色 spaces.

如有任何帮助,我们将不胜感激!


Doug Maurer 的完美回答。我只需要在我的命令末尾添加 trim ,我想我只是把它放错了,然后我想我需要循环它。答案要简单得多。

在任何人发言之前,我知道这不是最优雅的脚本,但我做了我需要的。它用于查找文件名中的特定单词,并将它们删除并替换为空。但是,一旦完成,有时我会留下尾随的白色 space.

通过在末尾添加 trim,在重新添加扩展之前,它完美地删除了 space 我的用例。

get-childitem -recurse | dir -Filter *.mp4 | Rename-Item -NewName { $_.BaseName.replace('Name1','').replace('Name2','').replace('Name3','').replace('Name4','').replace('Name5','').replace('Name6','').replace('Name7','').replace('Name8','').Trim() + $_.Extension }

根据 Doug 的建议编辑删除 DIR,因为它是不必要的:

Get-ChildItem -Recurse -Filter *.mp4 | Rename-Item -NewName { $_.BaseName.replace('Name1','').replace('Name2','').replace('Name3','').replace('Name4','').replace('Name5','').replace('Name6','').replace('Name7','').replace('Name8','').Trim() + $_.Extension }

你那里没有 trim 所以我不能说为什么你的尝试没有奏效。我能说的是您不需要两个 DIR 命令(dir 是 Get-ChildItem 的别名)。您的命令似乎缺少将扩展名添加回名称和最后一个花括号的部分。以下将 trim 您描述的基本名称。

Get-ChildItem -Recurse -Filter *.mp4 |
    Rename-Item -NewName {$_.BaseName.replace('Oldname','NewName').Trim() + $_.Extension}