Remove-Item
Elimina gli elementi specificati.
Sintassi
Path (Impostazione predefinita)
Remove-Item
[-Path] <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[-Stream <String[]>]
[<CommonParameters>]
LiteralPath
Remove-Item
-LiteralPath <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[-Stream <String[]>]
[<CommonParameters>]
Descrizione
Il cmdlet Remove-Item 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 i file con estensione
Questo comando elimina tutti i file con nomi che includono un punto ('.') dalla cartella "C:\Test". Poiché il comando specifica un punto, non elimina le cartelle o i file che non hanno estensione.
Remove-Item C:\Test\*.*
Esempio 2: Eliminare alcuni file di documento in una cartella
Questo comando elimina dalla cartella corrente tutti i file che hanno un'estensione ".doc" e un nome che non include 1. Utilizza il carattere jolly ('*') per specificare il contenuto della cartella corrente. Usa i parametri di Includi e Exclude per specificare i file da eliminare.
Remove-Item * -Include *.doc -Exclude *1*
Esempio 3: Eliminare file nascosti e di sola lettura
Questo comando elimina un file nascosto e di sola lettura. Usa il parametro Path per specificare il file. Usa il parametro Force per eliminarlo. Senza Force, non è possibile eliminare i file di sola lettura o nascosti .
Remove-Item -Path C:\Test\hidden-RO-file.txt -Force
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 Get-ChildItem per ottenere i file desiderati e quindi usa l'operatore della pipeline per passarli a Remove-Item.
Get-ChildItem Nel comando, Percorso ha un valore di '*', che rappresenta il contenuto della cartella corrente.
Usa Includi per specificare il tipo di file CSV e usa Recurse per rendere ricorsivo il recupero.
Se si tenta di specificare il tipo di file, il percorso, ad esempio -Path *.csv, il cmdlet interpreta l'oggetto della ricerca come un file che non dispone di elementi figlio e Recurse ha esito negativo.
Get-ChildItem * -Include *.csv -Recurse | Remove-Item
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.
Usa Remove-Item 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
In questo esempio viene illustrato come utilizzare il parametro dinamico Stream del cmdlet per eliminare un flusso di Remove-Item dati alternativo. Il parametro stream viene introdotto in Windows PowerShell 3.0.
Il primo comando utilizza il parametro dinamico Stream del Get-Item cmdlet per ottenere il flusso Zone.Identifier del file "Copy-Script.ps1".
Il secondo comando usa il parametro dinamico Stream del Remove-Item cmdlet per rimuovere il flusso Zone.Identifier del file.
Il terzo comando usa il parametro dinamico Stream del Get-Item cmdlet per verificare che il flusso Zone.Identifier venga eliminato.
Quarto cmdlet di comando Get-Item senza il parametro Stream per verificare che il file non venga eliminato.
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'.
At line:1 char:1
+ Get-Item 'C:\Test\Copy-Script.ps1' -Stream Zone.Identifier
+ [!INCLUDE[]()][!INCLUDE[]()][!INCLUDE[]()][!INCLUDE[]()][!INCLUDE[]()]~~
+ CategoryInfo : ObjectNotFound: (C:\Test\Copy-Script.ps1:String) [Get-Item], FileNotFoundE
xception
+ FullyQualifiedErrorId : AlternateDataStreamNotFound,Microsoft.PowerShell.Commands.GetItemCommand
Get-Item C:\Test\Copy-Script.ps1
Directory: C:\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 8/4/2011 11:15 AM 9436 Copy-Script.ps1
Parametri
-Confirm
Richiede conferma prima di eseguire il cmdlet.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | cfr |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Credential
Annotazioni
Questo parametro non è supportato da alcun provider installato con PowerShell. Per rappresentare un altro utente o elevare le credenziali quando si esegue questo cmdlet, usare Invoke-Command.
Proprietà dei parametri
| Tipo: | PSCredential |
| Valore predefinito: | Current user |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-Exclude
Specifica gli elementi omessi da questo cmdlet. Il valore di questo parametro qualifica il parametro Path. Immettete un elemento o un modello di percorso, ad esempio *.txt. Sono consentiti caratteri jolly.
Proprietà dei parametri
| Tipo: | String[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Filter
Specifica un filtro nel formato o nella lingua del provider. Il valore di questo parametro qualifica il parametro Path.
La sintassi del filtro, incluso l'uso di caratteri jolly, dipende dal provider. 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.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Force
Forza il cmdlet a rimuovere gli elementi che non possono essere modificati in altro modo, ad esempio i file nascosti o di sola lettura o gli alias o le variabili di sola lettura. Il cmdlet non è in grado di rimuovere alias o variabili costanti. L'implementazione varia da provider a provider. Per altre informazioni, consultare about_Providers. Anche usando il parametro Force, il cmdlet non può eseguire l'override delle restrizioni di sicurezza.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Include
Specifica gli elementi da eliminare. Il valore di questo parametro qualifica il parametro Path. Immettere un elemento o un modello di percorso, ad esempio "*.txt". Sono consentiti caratteri jolly.
Proprietà dei parametri
| Tipo: | String[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-LiteralPath
Specifica un percorso degli elementi da rimuovere. A differenza del parametro Path, il valore di LiteralPath viene usato esattamente come viene digitato. Nessun carattere viene interpretato come metacaratteri. Se il percorso include caratteri di escape, racchiudilo tra virgolette singole. Le virgolette singole indicano a PowerShell di non interpretare alcun carattere come sequenze di escape.
Proprietà dei parametri
| Tipo: | String[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | PSPath |
Set di parametri
LiteralPath
| Posizione: | Named |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-Path
Specifica un percorso degli elementi da rimuovere. Sono consentiti caratteri jolly.
Proprietà dei parametri
| Tipo: | String[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | True |
| DontShow: | False |
Set di parametri
Path
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | True |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-Recurse
Indica che questo cmdlet elimina gli elementi nelle posizioni specificate e in tutti gli elementi figlio delle posizioni.
Quando viene utilizzato con il parametro Include , il parametro Recurse potrebbe non eliminare tutte le sottocartelle o tutti gli elementi figlio.
Si tratta di un problema noto.
Per risolvere il problema, provare a reindirizzare i Get-ChildItem -Recurse risultati del comando a Remove-Item, come descritto nell'"Esempio 4" di questo argomento.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Stream
Il parametro Stream è un parametro dinamico che il provider FileSystem aggiunge a Remove-Item.
Questo parametro funziona solo nelle unità del sistema di file.
È possibile utilizzare Remove-Item per eliminare un flusso di dati alternativo.
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 cmdlet Unblock-File.
Questo parametro è stato introdotto in Windows PowerShell 3.0.
Proprietà dei parametri
| Tipo: | String[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-UseTransaction
Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per altre informazioni, vedere about_Transactions
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | usetx |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-WhatIf
Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | Wi |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
CommonParameters
Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.
Input
String
È possibile inviare tramite pipe una stringa contenente un percorso, ma non un percorso letterale, a questo cmdlet.
Output
None
Questo cmdlet non restituisce alcun output.
Note
Il cmdlet Remove-Item è progettato per lavorare con i dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare Get-PsProvider. Per altre informazioni, consultare about_Providers.