2012-09-06 10 views
5

Chciałbym wybrać listę plików przy użyciu Get-ChildItem odprowadzone do Rename-Item i mieć tekst na wyświetlaczu wyjście z każdej linii pokazano coś w stylu „Przemianowany StaraNazwaPliku do NowaNazwaPliku”.W grze powershell, w jaki sposób mogę użyć opcji Zmień nazwę elementu, aby wyświetlać stare i nowe nazwy plików w tym samym czasie?

Jak mogę to zrobić?

+1

jestem trochę nieuk PowerShell, więc jestem brnąc mało. Grałem z Tee-Object i -outvariable i -passthru, ale szczerze mówiąc nie bardzo wiem, co robię i wydaje mi się, że powinno być to łatwe. –

Odpowiedz

7
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) 
     } 
+1

Ten odwołuje się do mnie jako bardzo czytelny. –

6

Jednym prostym rozwiązaniem jest uruchomienie rename-item z -WhatIf. Spowoduje to wyświetlenie wartości podobnej do wystarczającej lub wymaganej do wykonania tej czynności podczas wykonywania tej operacji?

EDIT: Jeszcze prostsze rozwiązanie, użyj -Verbose. Czy taka sama jak -WhatIf, ale również wykonywania operacji :)

+0

Dzięki za to - chciałbym uzyskać ładne formatowanie na wyjściu, jeśli to możliwe. Pełne i co-jeśli działa, ale dane wyjściowe nie są bardzo czytelne. Wezwę jednak do głosowania w górę. –

4

Można to zrobić tak:

gci . | %{ rename-item -Path $_.fullname -NewName ($_.name + 1); Write-Host "Renamed $($_.fullname) to $($_.name + 1)"}