Condividi tramite


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]
    [-Stream <String[]>]
    [<CommonParameters>]

LiteralPath

Remove-Item
    -LiteralPath <String[]>
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-Recurse]
    [-Force]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-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

In questo esempio vengono eliminati dalla cartella tutti i file con nomi che includono un punto (.).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

In questo esempio vengono eliminati dalla cartella corrente tutti i file con estensione .doc e 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 di Includi e 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 i 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 Get-ChildItem per ottenere i file desiderati e quindi usa l'operatore della pipeline per passarli a Remove-Item.

Get-ChildItem * -Include *.csv -Recurse | Remove-Item

Nel comando Get-ChildItemPercorso ha il valore (*), 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.

Annotazioni

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. 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

Questo esempio illustra come usare il Stream parametro dinamico del cmdlet Remove-Item 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 ottiene il flusso di Get-Item del file di Zone.Identifier. Remove-Item usa il parametro Stream per rimuovere il flusso Zone.Identifier del file. Infine, il cmdlet Get-Item indica che il flusso di Zone.Identifier è stato eliminato.

Parametri

-Confirm

Richiede conferma prima di eseguire il cmdlet. Per altre informazioni, vedere gli articoli seguenti:

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, come array di stringhe, uno o più elementi che questo cmdlet esclude durante l'operazione. Il valore di questo parametro qualifica il parametro Path. Immettere un elemento o un modello di percorso, ad esempio *.txt. Sono consentiti caratteri jolly. Il parametro Exclude è valido solo quando il comando include il contenuto di un elemento, ad esempio C:\Windows\*, nel quale il carattere jolly specifica il contenuto della directory C:\Windows.

Quando si usa Recurse con Exclude, Exclude filtra solo i risultati della directory corrente. Se sono presenti file che corrispondono al modello di Exclude nelle sottocartelle, tali file vengono rimossi insieme alla relativa directory padre.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:None
Supporta i caratteri jolly:True
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 per qualificare il parametro Path. Il provider di FileSystem è l'unico provider di PowerShell installato che supporta l'utilizzo dei filtri. È possibile trovare la sintassi del 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.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:True
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, sotto forma di matrice di stringhe, un elemento o elementi che questo cmdlet include nell'operazione. Il valore di questo parametro qualifica il parametro Path. Immettere un elemento o un modello di percorso, ad esempio "*.txt". Sono consentiti caratteri jolly. Il parametro Include è efficace solo quando il comando include il contenuto di un elemento, ad esempio C:\Windows\*, dove il carattere jolly specifica il contenuto della directory C:\Windows.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:None
Supporta i caratteri jolly:True
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 per una o più posizioni. Il valore di LiteralPath viene utilizzato 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.

Per altre informazioni, vedere about_Quoting_Rules.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:PSPath, UP

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.

Il parametro Recurse potrebbe non eliminare tutte le sottocartelle o tutti gli elementi secondari. Si tratta di un problema noto.

Annotazioni

Questo comportamento è stato risolto nelle versioni di Windows 1909 e successive.

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

Annotazioni

Questo parametro è disponibile solo in Windows.

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 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 cmdlet Unblock-File.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:None
Supporta i caratteri jolly:True
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

-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.

Quando si tenta di eliminare una cartella contenente elementi senza usare il parametro Recurse, il cmdlet richiede la conferma. L'utilizzo -Confirm:$false non elimina il prompt. Questo è intenzionale.