首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell删除文件扩展名之前和下划线之间的文本。

Powershell删除文件扩展名之前和下划线之间的文本。
EN

Stack Overflow用户
提问于 2019-03-18 23:13:02
回答 1查看 1.4K关注 0票数 1

我有几个在他们的文件名中的文本需要删除的PDF文件。每个文件名的名称中都有几个下划线,这取决于文件名的长度。我的目标是删除.pdf文件扩展名与最后一个_之间的文本。

例如,我有:

  • AB_NAME_NAME_NAME_NAME_DS_123_EN_6.pdf
  • AC_NAME_NAME_NAME_DS_321_EN_10.pdf
  • AD_NAME_NAME_DS_321_EN_101.pdf

并希望删除大胆的部分成为:

  • AB_NAME_NAME_NAME_NAME_DS_123_EN.pdf
  • AC_NAME_NAME_NAME_DS_321_EN.pdf
  • AD_NAME_NAME_DS_321_EN.pdf

我是powershell的新手,但我做了一些研究,发现通过删除最后几个字符来重命名文件名问题很有帮助,但它并没有完全满足我的需要,因为我无法硬编码要删除的字符的长度,因为它们可能有不同的长度(2-4)。

Get-ChildItem 'C:\Path\here' -filter *.pdf | rename-item -NewName {$_.name.substring(0,$_.BaseName.length-3) + $_.Extension}

似乎有一种方法可以使用.splitregex来实现这一点,但我无法找到解决方案。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-18 23:48:28

您可以使用LastIndexOf()类的[string]方法来获取字符的最后一个实例的索引。就你的情况而言,这应该可以做到:

代码语言:javascript
复制
Get-ChildItem 'C:\Path\here' -filter *.pdf | rename-item -NewName { $_.BaseName.substring(0,$_.BaseName.lastindexof('_')) + $_.Extension }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55231416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档