Rename-Item to cmdlet PowerShella, który zmienia nazwę istniejącego elementu — pliku, folderu, klucza rejestru, aliasu czy zmiennej. Działa na dowolnym dostawcy (provider), więc tym samym poleceniem przemianujesz plik na dysku i wpis w HKLM:. Kluczowa sprawa, o której warto pamiętać od razu: Rename-Item tylko zmienia nazwę w miejscu — nie przenosi elementu do innego katalogu. Jeśli w -NewName wrzucisz ścieżkę, dostaniesz błąd. Do przenoszenia jest Move-Item.
Składnia i najważniejsze opcje
Podstawowa forma: Rename-Item [-Path]
-Path— ścieżka do elementu, który zmieniasz. Akceptuje symbole wieloznaczne (*,?), ale dotyczyć musi pojedynczego elementu.-NewName— sama nowa nazwa, bez ścieżki i bez wildcardów. To tu najczęściej ludzie się wykładają.-LiteralPath— ścieżka brana dosłownie, znak po znaku. Używaj, gdy nazwa zawiera nawiasy kwadratowe albo inne znaki, które PowerShell potraktowałby jak wzorzec.-Force— przemianuje elementy ukryte lub tylko-do-odczytu, których normalnie ruszyć się nie da.-PassThru— zwraca obiekt przemianowanego elementu, przydatne w potoku (domyślnie cmdlet nic nie wypisuje).-WhatIf— pokazuje, co by się stało, ale nic nie wykonuje. Twój pas bezpieczeństwa przy operacjach masowych.-Confirm— pyta o potwierdzenie przed każdą zmianą.
Przykłady użycia
Rename-Item -Path raport.txt -NewName raport-2026.txt— klasyka: zmiana nazwy jednego pliku.Rename-Item -Path 'C:\dane\stary folder' -NewName 'nowy folder'— to samo z folderem, ścieżka w cudzysłowie ze względu na spację.Get-ChildItem *.jpeg | Rename-Item -NewName { $_.Name -replace '\.jpeg$','.jpg' }— masowa zmiana rozszerzenia z użyciem bloku skryptu i potoku.Rename-Item -Path log.txt -NewName log_old.txt -Force -WhatIf— najpierw symulacja na pliku tylko-do-odczytu, dopiero potem uruchamiasz bez-WhatIf.Rename-Item -LiteralPath 'plik[1].txt' -NewName 'plik1.txt'— dosłowna ścieżka, bo nawiasy w nazwie psułyby zwykłe dopasowanie.
Częste błędy i pułapki
Najczęstszy błąd to wciśnięcie pełnej ścieżki w -NewName — cmdlet to odrzuci, bo oczekuje samej nazwy. Drugi grzech: próba przemianowania wielu plików naraz przez -Path *.txt z jedną nazwą docelową — to skończy się błędem, bo dwa pliki nie mogą mieć tej samej nazwy. Do operacji wsadowych używaj potoku z Get-ChildItem i bloku skryptu w -NewName. Pamiętaj też, że nazwy z nawiasami kwadratowymi wymagają -LiteralPath, inaczej PowerShell potraktuje je jak wzorzec i „nie znajdzie” pliku, który masz przed oczami.
Powiązane komendy: Move-Item (przenoszenie i przy okazji zmiana nazwy), Copy-Item, Rename-ItemProperty (nazwa właściwości, np. w rejestrze), Get-ChildItem.