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

Cob*_*old 1 powershell

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

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

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

EBG*_*een 5

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

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