Ce face Rename-Item
Rename-Item schimbă doar numele unui element; conținutul și locația rămân aceleași. -NewName primește doar un nume, nu o cale: dacă vrei să muți și să redenumești în același timp, folosește Move-Item.
Pentru redenumiri în masă, trimite fișierele prin pipeline și dă lui -NewName un script block, în care $_ este fișierul curent. De exemplu, { $_.Name -replace '\.txt$', '.log' } schimbă extensia; -replace folosește expresii regulate și nu ține cont de majuscule.
Comanda nu poate înlocui un fișier existent cu numele nou, nici cu -Force (acolo -Force servește doar la fișiere ascunse sau doar pentru citire). Aliasuri: ren și rni.
Parametri
| Parametru | Descriere |
|---|---|
-Path |
Elementul de redenumit; poate veni din pipeline. |
-NewName |
Numele nou (fără cale). Poate fi un script block evaluat pentru fiecare element din pipeline. |
-Force |
Redenumește și elemente ascunse sau doar pentru citire. |
-LiteralPath |
Calea folosită exact cum e scrisă, fără wildcard-uri. |
-PassThru |
Întoarce elementul redenumit. |
-WhatIf / -Confirm |
Arată redenumirea fără s-o facă, respectiv cere confirmare. |
Ce returnează
Nimic implicit; cu -PassThru, obiectul redenumit.
Exemple
Exemplul 1: Redenumește un fișier
note.txt devine note-2026.txt în același folder.
Rename-Item -Path C:\Proiecte\note.txt -NewName note-2026.txt
Exemplul 2: Schimbă extensia mai multor fișiere
Script block-ul calculează numele nou pentru fiecare fișier. \.txt$ potrivește doar extensia de la final.
Get-ChildItem -Path C:\Proiecte\jurnale -Filter *.txt |
Rename-Item -NewName { $_.Name -replace '\.txt$', '.log' }
Get-ChildItem -Path C:\Proiecte\jurnale -Name
Ieșire în terminal
iasi-luni.log
iasi-marti.log
iasi-miercuri.log
Exemplul 3: Adaugă un prefix la poze
Fiecare fișier .jpg primește prefixul Cluj- în fața numelui existent.
Get-ChildItem -Path C:\Poze -Filter *.jpg |
Rename-Item -NewName { 'Cluj-' + $_.Name }
Get-ChildItem -Path C:\Poze -Name
Ieșire în terminal
Cluj-catedrala.jpg
Cluj-piata-unirii.jpg
Greșeli frecvente
Rename-Item .\proiect.txt -NewName D:\arhiva\proiect.txtdă eroare:-NewNameacceptă doar un nume. Pentru mutare cu redenumire, foloseșteMove-Item.- În
-replace '.txt', '.log', punctul înseamnă „orice caracter” în regex, așa că s-ar potrivi și „atxt” în mijlocul numelui. Scrie'\.txt$'. - Dacă numele nou există deja în folder, redenumirea eșuează. Pentru a înlocui fișierul existent, folosește
Move-Item -Force.
Comenzi înrudite
Move-Item: Mută fișiere și foldere în altă locație, opțional cu nume nou; elementul dispare din locul inițial.Get-ChildItem: Listează fișierele și folderele dintr-o locație, opțional recursiv, filtrate după nume sau tip (echivalentul lui dir și ls).ForEach-Object: Rulează un bloc de cod pentru fiecare obiect din pipeline; din PowerShell 7.0 poate rula blocurile în paralel cu -Parallel.Operatori de comparație: PowerShell compară cu -eq, -ne, -gt, -lt, -like, -match, -contains, -in, nu cu = sau >; implicit nu ține cont de majuscule.