在powershell中,如何使用Rename-Item同时输出旧文件名和新文件名?

Jam*_*rld 8 powershell get-childitem rename-item-cmdlet

我想选择使用的文件列表Get-ChildItem通过管道输送到Rename-Item并与每行显示像"改名为输出显示文本oldfilenamenewfilename ".

我怎样才能做到这一点?

小智 11

Get-Childitem C:\Temp |
    Foreach-object {
        $OldName = $_.name; 
        $NewName = $_.name -replace 'temp','test'; 
        Rename-Item -Newname $NewName; 
        Write-Output $("Renamed {0} to {1}" -f $OldName,$NewName)
        }
Run Code Online (Sandbox Code Playgroud)


car*_*ett 8

一个简单的解决方案是运行rename-item使用-WhatIf.这将显示类似的东西

PS H:\test> gci | rename-item -newname { $_.name -replace 'temp','test' } -WhatIf
What if: Performing operation "Rename File" on Target "Item: H:\test\temp1 Destination: H:\test\test1".
Run Code Online (Sandbox Code Playgroud)

足够好了,还是你还需要它来做这个操作?

编辑:一个更简单的解决方案,使用-Verbose.是一样的-WhatIf,但也执行操作:)