使用Powershell附加到循环中的文件名

使用Powershell附加到循环中的文件名,powershell,powershell-3.0,Powershell,Powershell 3.0,所需功能 file1.txt -> file1.txt.deploy file2.txt -> file2.txt.deploy 尝试#82 无法计算参数NewName,因为其参数被指定为脚本块,并且没有输入 我做错了什么?如果对每个对象使用ForEach对象,则需要使用$\ucode>在实际对象中插入管道: Get-ChildItem | ForEach-Object { Rename-Item $_ -NewName { $_.Name + ".deploy" } }

所需功能

file1.txt ->  file1.txt.deploy
file2.txt ->  file2.txt.deploy
尝试#82

无法计算参数NewName,因为其参数被指定为脚本块,并且没有输入


我做错了什么?

如果对每个对象使用
ForEach对象
,则需要使用
$\ucode>在实际对象中插入管道:

Get-ChildItem | ForEach-Object {
  Rename-Item $_ -NewName { $_.Name + ".deploy" }
}
或者跳过BartekB在注释中提到的
ForEach对象

Get-ChildItem |  Rename-Item -NewName { $_.Name + ".deploy" }

-newname
参数值中使用
()
更改
{}
。或者直接管道到
重命名项
并完全跳过每个对象的
。在这种情况下没有必要。为什么要在
()
上使用
{}
?我知道第一个是脚本块,但为什么在这种情况下不合适呢?
Get-ChildItem |  Rename-Item -NewName { $_.Name + ".deploy" }