我需要删除目录中每个文件的前 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))}