Ce face Remove-Item
Remove-Item șterge elementele indicate: fișiere, foldere, dar și chei de registry, variabile sau funcții, pentru că lucrează cu orice provider. Fișierele șterse nu ajung în Coșul de reciclare, așa că verifică înainte ce urmează să dispară.
Un folder cu conținut se șterge cu -Recurse; fără el, PowerShell îți cere confirmare (iar -Confirm:$false nu oprește această întrebare). -Force este necesar pentru fișiere ascunse sau doar pentru citire.
-WhatIf afișează ce s-ar șterge fără să șteargă nimic, iar -Confirm te întreabă pentru fiecare element. Aliasuri: del, erase, rd și ri pe toate sistemele, rm și rmdir doar pe Windows.
Parametri
| Parametru | Descriere |
|---|---|
-Path |
Elementele de șters; acceptă wildcard-uri (C:\Proiecte\temp\*.tmp) și intrare din pipeline. |
-Recurse |
Șterge folderul cu tot conținutul lui. |
-Force |
Șterge și elemente ascunse sau doar pentru citire. |
-Include / -Exclude |
Filtrează elementele găsite de -Path (cer * la finalul căii). |
-LiteralPath |
Calea folosită exact cum e scrisă (pentru nume cu [ ]). |
-WhatIf |
Arată ce s-ar șterge, fără să șteargă. |
-Confirm |
Cere confirmare înainte de fiecare ștergere. |
Ce returnează
Nimic.
Exemple
Exemplul 1: Verifică ce s-ar șterge cu -WhatIf
Nicio ștergere nu are loc; vezi doar lista fișierelor care s-ar potrivi.
Remove-Item -Path C:\Proiecte\temp\*.tmp -WhatIf
Ieșire în terminal
What if: Performing the operation "Remove File" on target "C:\Proiecte\temp\export-ana.tmp".
What if: Performing the operation "Remove File" on target "C:\Proiecte\temp\export-mihai.tmp".
Exemplul 2: Șterge un folder cu tot conținutul
-Recurse șterge și subfolderele, -Force include fișierele ascunse. Comanda nu afișează nimic.
Remove-Item -Path C:\Proiecte\arhiva-2020 -Recurse -Force
Exemplul 3: Cere confirmare înainte de ștergere
Cu -Confirm, PowerShell întreabă; răspunsul N anulează ștergerea.
Remove-Item -Path .\buget-vechi.xlsx -Confirm
Ieșire în terminal
Confirm
Are you sure you want to perform this action?
Performing the operation "Remove File" on target "C:\Proiecte\buget-vechi.xlsx".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): N
Greșeli frecvente
Remove-Item -Path .\* -Include *.csv -Recursenu se comportă mereu cum te aștepți, iar-Excludecu-Recursefiltrează doar primul nivel. Pentru ștergeri recursive selective, găsește întâi fișierele:Get-ChildItem -Recurse -Filter *.csv | Remove-Item -WhatIf, apoi rulează fără-WhatIf.- Numele cu paranteze drepte (
factura[1].pdf) nu se potrivesc în-Path, pentru că[]sunt wildcard-uri. Folosește-LiteralPath. - Pe macOS și Linux,
rmrulează comanda nativă, nuRemove-Item:rm -Recursenu există acolo (rm -rda). În scripturi portabile scrie numele complet. - O variabilă goală într-o cale (
Remove-Item "$dosar\*" -Recursecu$dosarnesetat) devine\*, adică rădăcina unității curente. Verifică variabila înainte și testează cu-WhatIf.
Comenzi înrudite
Get-ChildItem: Listează fișierele și folderele dintr-o locație, opțional recursiv, filtrate după nume sau tip (echivalentul lui dir și ls).Test-Path: Verifică dacă o cale există și întoarce True sau False; poate cere să fie fișier sau folder și să fie mai nouă decât o dată.Copy-Item: Copiază fișiere și foldere în altă locație, opțional cu tot conținutul subfolderelor și cu nume nou.Move-Item: Mută fișiere și foldere în altă locație, opțional cu nume nou; elementul dispare din locul inițial.Where-Object: Filtrează obiectele din pipeline și le lasă să treacă doar pe cele care îndeplinesc o condiție.