我有一个简单的PowerShell脚本批量重命名文件,我想有一个表格输出显示“旧文件名”和“新文件名”以显示更改。如果在仍处于'ForEach-Object'循环内部的情况下如何访问/引用新文件名,假定可以完成?我可以刷新$ _的特定值吗?我不想仅仅使用我的变量$ newname,因为我创建了它,并且由于这应该是输出,显示文件名实际上已更改,所以我想从系统中访问文件的新名称,脚本。突变后立即访问PowerShell变量
Write-Host "Old Name `t`t`t`t`t`t New Name"
Write-Host "-------- `t`t`t`t`t`t --------"
$files = Get-ChildItem -Path C:\Users\<user>\Desktop\Config
$files | % ({
if ((!$_.PsIsContainer) -and ($_.Extension -eq '')) {
$oldname = $_.FullName
$newname = "$($_.FullName).cfg"
Rename-Item $oldname $newname
# $_.Name still refers to the old file name without the extension
# How do I immediately access its new name (including extension)?
Write-Host $_.Name `t`t`t`t`t`t $newname
}
})
什么是错的使用'$ newname'?如果'Rename-Item'没有返回错误,你可以假设它有效,并且你选择的新名称是正确的。 – arco444 2014-09-28 12:30:16