У меня есть простой сценарий 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'? Если никакая ошибка не возвращается «Переименовать-Элемент», вы можете предположить, что она сработала и что новое имя, которое вы выбрали, является правильным. – arco444