Chi di noi ha una certa età, ed era abituato all’utilizzo dei comandi DOS, si ricorderà di del *.*, per eliminare tutti i file presenti in una cartella, o rd seguito dal nome di una cartella per cancellarla. Le stesse operazioni, e non solo, si possono fare con PowerShell e il cmdlet Remove-Item.
Se alcuni dei comandi presenti nell’articolo non dovessero funzionare nel vostro computer, controllate se avete l’ultima versione di PowerShell, oppure il comando ha subito qualche cambiamento e va cercata la nuova versione dello stesso.
Per cancellare il file prova1.txt dal percorso Cartella_Da_Eliminare si deve usare il comando:
Remove-Item "C:\Da_Eliminare\prova1.txt"
Per forzare l'eliminazione di un file nascosto, o di sola lettura, va aggiunta l’opzione -Force quindi il comando diventa:
Remove-Item -Force "C:\Da_Eliminare\prova2.txt"
Per cancellare più file basta inserire il loro percorso separato da una virgola:
Remove-Item “C:\Da_Eliminare\prova3.txt”,”C:\Da_Eliminare\prova4.txt”,”C:\Da_Eliminare\prova5.txt”
Per cancellare tutti i file contenuti in una cartella si usa il comando:
Remove-Item “C:\Da_Eliminare\*.*”
Per cancellare tutti i file dall’estensione png.
Remove-Item “C:\Da_Eliminare\*.png”
Se dovete eliminare una cartella, ma questa contiene ancora dei file, vi compare un avviso e potete confermare la loro rimozione.
Remove-Item "C:\Da_Eliminare"
Sino ad ora, i comandi usati, cancellavano direttamente il file senza chiederci conferma, se vogliamo che questo avvenga va aggiunta l’opzione -confirm
in fondo al comando.
Se volete cancellare tutti file .doc da una cartella, tranne quelli che contengono nel nome certi caratteri, potete usare il comando
Remove-Item * -Include *.doc -Exclude *1*
L’uso delle virgolette per contenere il percorso del file, o della cartella, si rende necessario quando ci sono degli spazi nel percorso, perché la rimozione della cartella D:\Da Eliminare fallirebbe. Invece con “D:\Da Eliminare” viene cancellata senza problemi.
Per abitudine si possono usare sempre le virgolette così non si sbaglia mai.
Con il comando Get-ChildItem -Path d:\da_eliminare\ -File -Recurse | Remove-Item
potete cancellare tutti i file contenuti nella cartella d:\da_eliminare mantenendo però la cartella principale e tutte le cartelle che contiene.
Invece Remove-Item -Path d:\da_eliminare\ -Recurse
cancella la cartella d:\da_eliminare e tutto quello che contiene.
Se ne volete sapere di più su questo comando potete consultare questa pagina Microsoft dove scoprirete le altre opzioni disponibili.