我有一個簡單的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