我有一个简单的 PowerShell 脚本,可以批量重命名文件,我想要一个显示“旧文件名”和“新文件名”的表输出来显示更改。假设可以完成,我如何在“ForEach-Object”循环内访问/引用新文件名?我可以刷新 $_ 的特定值吗?我不想只使用我的变量 $newname 因为我创建了它,并且由于这应该是显示文件名实际更改的输出,所以我想从系统访问文件的新名称,由脚本。
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
}
})