我有几个在他们的文件名中的文本需要删除的PDF文件。每个文件名的名称中都有几个下划线,这取决于文件名的长度。我的目标是删除.pdf文件扩展名与最后一个_之间的文本。
例如,我有:
并希望删除大胆的部分成为:
我是powershell的新手,但我做了一些研究,发现通过删除最后几个字符来重命名文件名问题很有帮助,但它并没有完全满足我的需要,因为我无法硬编码要删除的字符的长度,因为它们可能有不同的长度(2-4)。
Get-ChildItem 'C:\Path\here' -filter *.pdf | rename-item -NewName {$_.name.substring(0,$_.BaseName.length-3) + $_.Extension}
似乎有一种方法可以使用.split或regex来实现这一点,但我无法找到解决方案。谢谢。
发布于 2019-03-18 23:48:28
您可以使用LastIndexOf()类的[string]方法来获取字符的最后一个实例的索引。就你的情况而言,这应该可以做到:
Get-ChildItem 'C:\Path\here' -filter *.pdf | rename-item -NewName { $_.BaseName.substring(0,$_.BaseName.lastindexof('_')) + $_.Extension }https://stackoverflow.com/questions/55231416
复制相似问题