网站搜索

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,以替换文件名末尾不同数量的字符。

相关文章