PowerShell:如何从文件名中删除最后 N 个字符
通常,您可能希望使用 PowerShell 删除特定目录中文件名的最后 N 个字符。
您可以使用以下语法来执行此操作:
gci | ren -newname {$_.Name.substring(0,$_.BaseName.length-5) + $_.Extension}
此特定示例将从当前目录中的每个文件名中删除最后 5 个字符。
以下是各种命令的作用:
- gci:Get-ChildItem 的别名,检索当前目录中的所有文件。
- ren:Rename-Item 的别名,为每个文件指定一个新名称。
- $_.Name:检索当前文件名。
- 子字符串:指定新文件名应等于当前文件名,范围从索引位置0(第一个字符)到当前文件名的全长减去 5。
- $_.Extension:指定应将原始文件扩展名添加回文件名。
以下示例展示了如何在实践中使用此语法。
示例:如何在 PowerShell 中删除文件名中的最后 N 个字符
首先,我们可以使用 gci 命令(Get-ChildItem cmdlet 的别名)首先查看当前目录中的所有文件名:
我们可以看到当前目录中有四个文件,它们都以命名约定 _data 结尾。
假设我们要从每个文件名中删除最后 5 个字符,这将有效地从每个文件名的末尾删除 _data。
我们可以使用以下语法来执行此操作:
gci | ren -newname {$_.Name.substring(0,$_.BaseName.length-5) + $_.Extension}以下屏幕截图显示了如何在实践中使用此语法:
请注意,当我们再次使用 gci 命令查看当前目录中的所有文件时,我们可以看到每个文件名的最后 5 字符已被删除。
注意:随意替换代码中的5,以替换文件名末尾不同数量的字符。

