循环遍历文件并删除部分文件名

循环遍历文件并删除部分文件名

我需要删除目录中每个文件的前 3 个字符。这是我的代码:

Get-ChildItem "D:\New Folder" -Filter *.txt |
foreach-object -process {rename-item -path $_.FullName -newname ($_.Remove(0,3))}

我不明白为什么这不起作用。有人能帮助我吗?

答案1

$_ 指的是文件对象。而不是文件的名称。我怀疑您只是忘记了这一点,因为您确实引用了 -Path 的 $_.Fullname。重命名时,请尝试引用名称而不是对象:

Get-ChildItem "D:\New Folder" -Filter *.txt |
foreach-object -process {rename-item -path $_.FullName -newname ($_.Name.Remove(0,3))}

相关内容