文件扩展名结束后如何删除字符串

问题描述 投票:0回答:2

我在文件资源管理器中有几百个文件要重命名。 所有文件都以扩展名后的一组 2 个字符结尾。例如:

23RH1.JPG;1
有没有办法通过删除所有文件名的最后 2 个字符来批量重命名所有文件?或者我可以运行一个 Powershell 脚本,它会自动删除所有文件名末尾的最后 2 个字符?

提前谢谢你

到目前为止,我已经尝试按照

的方式运行一些东西
get-childitem *.JPG | rename-item -newname { $_.fullname.substring(0,$_.fullname.length-2) + $_.extension }

gci <dir path \*> |% {rename-item $_.fullname -newname $_.basename -whatif}

不幸的是,我的 PowerShell 知识非常有限,我不确定如何一次批量重命名大量文件,因为它对我来说是一个相当新的工具。

非常感谢任何可以提供任何帮助或建议的人。

powershell scripting file-rename microsoft-file-explorer
2个回答
1
投票

在这种情况下,建议将您的过滤器细化为仅查找以

.jpg
结尾的文件,然后是
;
以及
之后的任何内容,然后为了重命名,您可以使用一个简单的正则表达式来替换最后2个字符一个字符串
.{2}$

Get-ChildItem path\to\targetfolder -Filter '*.jpg;?' |
    Rename-Item -NewName { $_.Name -replace '.{2}$' }

0
投票

试一试

Get-ChildItem -Path "C:\Path\To\Your\Folder" | foreach {Rename-Item $_.FullName -NewName ($_.BaseName.Substring(0, $_.BaseName.Length - 2) + $_.Extension)}

© www.soinside.com 2019 - 2024. All rights reserved.