使用PowerShell批量删除文件名开头的字符时出现问题



我正试图使用Powershell整理一批文件名,但我收到了以下错误:

重命名项目:当文件已经存在时,无法创建该文件。第1行字符:7+目录|重命名项-NewName{$_.Name.Substring(0,$_.BaseName.Length-4(。。。+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+类别信息:WriteError:(C:\Users\garet\…e Mine(1(.mp3:String([重命名项],IOException+FullyQualifiedErrorId:RenameItemIOError,Microsoft.PowerShell.Commands.RenameItemCommand

我使用的命令是:

Dir | Rename-Item -NewName {$_.Name.Substring(0,$_.BaseName.Length-4) + $_.Extension}

我认为您的命令目前并没有删除前4个字符,而是删除了最后4个字符。试试这个:

Dir | Rename-Item -NewName {$_.name.substring(4,$_.BaseName.length-4) + $_.Extension}

您可以进一步简化这一点,因为如果您想要字符串的全长减去开头的字符数,您可以只提供起始索引。

Dir | Rename-Item -NewName {$_.name.substring(4) + $_.Extension}

例如:

'test'.substring(2)

输出:

st

解释:

使用substring时,传递两个值,第一个值是要从中开始的字符串的字符索引,第二个值是从该点开始要捕获的字符串的数量。

最新更新