Remove-Item
Elimina gli elementi specificati.
Sintassi
Remove-Item
[-Path] <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-Stream <String[]>]
[<CommonParameters>]
Remove-Item
-LiteralPath <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-Stream <String[]>]
[<CommonParameters>]
Remove-Item
[-Path] <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-DeleteKey]
[<CommonParameters>]
Remove-Item
-LiteralPath <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-DeleteKey]
[<CommonParameters>]
Remove-Item
[-Path] <string[]>
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Recurse]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Item
-LiteralPath <string[]>
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Recurse]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Descrizione
Il Remove-Item
cmdlet elimina uno o più elementi. Poiché è supportato da molti provider, può eliminare molti tipi diversi di elementi, tra cui file, cartelle, chiavi del Registro di sistema, variabili, alias e funzioni.
Esempio
Esempio 1: Eliminare file con estensione di file
In questo esempio vengono eliminati tutti i file con nomi che includono un punto (.
) dalla C:\Test
cartella .
Poiché il comando specifica un punto, il comando non elimina cartelle o file senza estensione di file.
Remove-Item C:\Test\*.*
Esempio 2: Eliminare i file di documento in una cartella
In questo esempio vengono eliminati dalla cartella corrente tutti i file con estensione .doc
di file e un nome che non include *1*
.
Remove-Item * -Include *.doc -Exclude *1*
Usa il carattere jolly (*
) per specificare il contenuto della cartella corrente. Usa i parametri Include ed Exclude per specificare i file da eliminare.
Esempio 3: Eliminare file nascosti e di sola lettura
Questo comando elimina un file nascosto e di sola lettura.
Remove-Item -Path C:\Test\hidden-RO-file.txt -Force
Usa il parametro Path per specificare il file. Usa il parametro Force per eliminarlo. Senza Force, non è possibile eliminare file di sola lettura o nascosti .
Esempio 4: Eliminare i file nelle sottocartelle in modo ricorsivo
Questo comando elimina tutti i file CSV nella cartella corrente e tutte le sottocartelle in modo ricorsivo.
Poiché il parametro Recurse in Remove-Item
presenta un problema noto, il comando in questo esempio usa per ottenere i file desiderati Get-ChildItem
e quindi usa l'operatore pipeline per passarli a Remove-Item
.
Get-ChildItem * -Include *.csv -Recurse | Remove-Item
Get-ChildItem
Nel comando Path ha il valore (*
), che rappresenta il contenuto della cartella corrente. Usa Include per specificare il tipo di file CSV e usa Recurse per rendere ricorsivo il recupero. Se si tenta di specificare il tipo di file nel percorso, ad esempio -Path *.csv
, il cmdlet interpreta l'oggetto della ricerca come file senza elementi figlio e Recurse ha esito negativo.
Nota
Questo comportamento è stato risolto nelle versioni di Windows 1909 e successive.
Esempio 5: Eliminare le sottochiavi in modo ricorsivo
Questo comando elimina la chiave del Registro di sistema "OldApp" e tutte le relative sottochiavi e valori. Remove-Item
Usa per rimuovere la chiave. Il percorso viene specificato, ma il nome del parametro facoltativo (Path) viene omesso.
Il parametro Recurse elimina in modo ricorsivo tutto il contenuto della chiave "OldApp". Se la chiave contiene sottochiavi e si omette il parametro Recurse , viene richiesto di confermare di voler eliminare il contenuto della chiave.
Remove-Item HKLM:\Software\MyCompany\OldApp -Recurse
Esempio 6: Eliminazione di file con caratteri speciali
Nell'esempio seguente viene illustrato come eliminare file contenenti caratteri speciali come parentesi quadre o parentesi.
Get-ChildItem
Directory: C:\temp\Downloads
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 6/1/2018 12:19 PM 1362 myFile.txt
-a--- 6/1/2018 12:30 PM 1132 myFile[1].txt
-a--- 6/1/2018 12:19 PM 1283 myFile[2].txt
-a--- 6/1/2018 12:19 PM 1432 myFile[3].txt
Get-ChildItem | Where-Object Name -Like '*`[*'
Directory: C:\temp\Downloads
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 6/1/2018 12:30 PM 1132 myFile[1].txt
-a--- 6/1/2018 12:19 PM 1283 myFile[2].txt
-a--- 6/1/2018 12:19 PM 1432 myFile[3].txt
Get-ChildItem | Where-Object Name -Like '*`[*' | ForEach-Object { Remove-Item -LiteralPath $_.Name }
Get-ChildItem
Directory: C:\temp\Downloads
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 6/1/2018 12:19 PM 1362 myFile.txt
Esempio 7: Rimuovere un flusso di dati alternativo
Questo esempio illustra come usare il parametro dinamico Stream del Remove-Item
cmdlet per eliminare un flusso di dati alternativo. Il parametro stream viene introdotto in Windows PowerShell 3.0.
Get-Item C:\Test\Copy-Script.ps1 -Stream Zone.Identifier
FileName: \\C:\Test\Copy-Script.ps1
Stream Length
------ ------
Zone.Identifier 26
Remove-Item C:\Test\Copy-Script.ps1 -Stream Zone.Identifier
Get-Item C:\Test\Copy-Script.ps1 -Stream Zone.Identifier
Get-Item : Could not open alternate data stream 'Zone.Identifier' of file 'C:\Test\Copy-Script.ps1'.
Il parametro Get-Item
Stream ottiene il Zone.Identifier
flusso del Copy-Script.ps1
file. Remove-Item
usa il parametro Stream per rimuovere il Zone.Identifier
flusso del file. Infine, il Get-Item
cmdlet mostra che il Zone.Identifier
flusso è stato eliminato.
Parametri
-Confirm
Richiede conferma prima di eseguire il cmdlet. Per altre informazioni, vedere gli articoli seguenti:
Tipo: | SwitchParameter |
Alias: | cf |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Credential
Nota
Questo parametro non è supportato da alcun provider installato con PowerShell. Per rappresentare un altro utente o elevare le credenziali durante l'esecuzione di questo cmdlet, usare Invoke-Command.
Tipo: | PSCredential |
Posizione: | Named |
Valore predefinito: | Current user |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-DeleteKey
Si tratta di un parametro dinamico reso disponibile dal provider di certificati . Il provider di certificati e questo parametro sono disponibili solo nelle piattaforme Windows.
Se specificato, il cmdlet elimina la chiave privata quando il certificato viene eliminato.
Per altre informazioni, vedere about_Certificate_Provider.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Exclude
Specifica, come matrice di stringhe, un elemento o elementi esclusi dal cmdlet nell'operazione. Il valore di questo parametro qualifica il parametro Path . Immettere un elemento o un modello di percorso, ad esempio *.txt
. I caratteri jolly sono consentiti. Il parametro Exclude è effettivo solo quando il comando include il contenuto di un elemento, ad esempio C:\Windows\*
, dove il carattere jolly specifica il contenuto della C:\Windows
directory.
Quando si usa Recurse con Exclude, Exclude filtra solo i risultati della directory corrente. Se sono presenti file che corrispondono al criterio Exclude nelle sottocartelle, tali file vengono rimossi insieme alla relativa directory padre.
Tipo: | String[] |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | True |
-Filter
Specifica un filtro per qualificare il parametro Path . Il provider FileSystem è l'unico provider di PowerShell installato che supporta l'uso dei filtri. È possibile trovare la sintassi per il linguaggio di filtro FileSystem in about_Wildcards. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica quando il cmdlet ottiene gli oggetti anziché filtrare gli oggetti dopo il recupero.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | True |
-Force
Forza il cmdlet a rimuovere elementi che non possono altrimenti essere modificati, ad esempio file nascosti o di sola lettura o alias o variabili di sola lettura. Il cmdlet non può rimuovere alias o variabili costanti. L'implementazione varia a seconda del provider. Per altre informazioni, vedere about_Providers. Anche usando il parametro Force , il cmdlet non può eseguire l'override delle restrizioni di sicurezza.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Include
Specifica, come matrice di stringhe, un elemento o elementi inclusi nel cmdlet nell'operazione. Il valore di questo parametro qualifica il parametro Path . Immettere un elemento o un modello di percorso, ad esempio "*.txt"
. I caratteri jolly sono consentiti. Il parametro Include è effettivo solo quando il comando include il contenuto di un elemento, ad esempio C:\Windows\*
, dove il carattere jolly specifica il contenuto della C:\Windows
directory.
Tipo: | String[] |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | True |
-LiteralPath
Specifica un percorso di una o più posizioni. Il valore di LiteralPath viene usato esattamente come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, racchiuderlo tra virgolette singole. Le virgolette singole indicano a PowerShell di non interpretare alcun carattere come sequenze di escape.
Per altre informazioni, vedere about_Quoting_Rules.
Tipo: | String[] |
Alias: | PSPath, LP |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Path
Specifica un percorso degli elementi da rimuovere. I caratteri jolly sono consentiti.
Tipo: | String[] |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | True |
-Recurse
Indica che questo cmdlet elimina gli elementi nelle posizioni specificate e in tutti gli elementi figlio delle posizioni.
Il parametro Recurse potrebbe non eliminare tutte le sottocartelle o tutti gli elementi figlio. Questo è un problema noto
Nota
Questo comportamento è stato risolto nelle versioni di Windows 1909 e successive.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Stream
Si tratta di un parametro dinamico reso disponibile dal provider FileSystem . Questo parametro è disponibile solo in Windows. Questo parametro non può essere usato in combinazione con il parametro Recurse .
È possibile usare Remove-Item
per eliminare un flusso di dati alternativo, ad esempio Zone.Identifier
.
Tuttavia, non è il modo consigliato per eliminare i controlli di sicurezza che bloccano i file scaricati da Internet. Se si verifica che un file scaricato sia sicuro, usare il Unblock-File
cmdlet .
Questo parametro è stato introdotto in Windows PowerShell 3.0. A partire da Windows PowerShell 7.2, Remove-Item
può rimuovere flussi di dati alternativi da directory e file.
Per altre informazioni, vedere about_FileSystem_Provider.
Tipo: | String[] |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | True |
-WhatIf
Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.
Tipo: | SwitchParameter |
Alias: | wi |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
È possibile inviare tramite pipe una stringa contenente un percorso, ma non un percorso letterale, a questo cmdlet.
Output
None
Questo cmdlet non restituisce output.
Note
PowerShell include gli alias seguenti per Remove-Item
:
- Tutte le piattaforme:
del
erase
rd
ri
- Windows:
rm
rmdir
Il Remove-Item
cmdlet è progettato per lavorare con i dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare Get-PsProvider
. Per altre informazioni, vedere about_Providers.
Quando si tenta di eliminare una cartella che contiene elementi senza usare il parametro Recurse , il cmdlet richiede la conferma. L'uso -Confirm:$false
di non elimina il prompt. Questo si verifica per motivi strutturali.