Move-Item
Sposta un elemento da una posizione a un'altra.
Sintassi
Move-Item
[-Path] <String[]>
[[-Destination] <String>]
[-Force]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Move-Item
-LiteralPath <String[]>
[[-Destination] <String>]
[-Force]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Descrizione
Il cmdlet Move-Item
sposta un elemento, incluse le proprietà, il contenuto e gli elementi figlio, da una posizione a un'altra. I percorsi devono essere supportati dallo stesso provider.
Ad esempio, può spostare un file o una sottodirectory da una directory a un'altra o spostare una sottochiave del Registro di sistema da una chiave a un'altra. Quando si sposta un elemento, questo viene aggiunto alla nuova posizione ed eliminato dalla posizione originale.
Esempio
Esempio 1: Spostare un file in un'altra directory e rinominarlo
Questo comando sposta il file Test.txt
dall'unità C:
alla directory E:\Temp
e lo rinomina da test.txt
a tst.txt
.
Move-Item -Path C:\test.txt -Destination E:\Temp\tst.txt
Esempio 2: Spostare una directory e il relativo contenuto in un'altra directory
Questo comando sposta la directory C:\Temp
e il relativo contenuto nella directory C:\Logs
.
La directory Temp
e tutti i relativi file e sottodirectory vengono quindi visualizzati nella directory Logs
.
Move-Item -Path C:\Temp -Destination C:\Logs
Esempio 3: Spostare tutti i file di un'estensione specificata dalla directory corrente a un'altra directory
Questo comando sposta tutti i file di testo (*.txt
) nella directory corrente (rappresentata da un punto (.
)) nella directory C:\Logs
.
Move-Item -Path .\*.txt -Destination C:\Logs
Esempio 4: Spostare in modo ricorsivo tutti i file di un'estensione specificata dalla directory corrente a un'altra directory
Questo comando sposta tutti i file di testo dalla directory corrente e tutte le sottodirectory, in modo ricorsivo, alla directory C:\TextFiles
.
Get-ChildItem -Path ".\*.txt" -Recurse | Move-Item -Destination "C:\TextFiles"
Il comando usa il cmdlet Get-ChildItem
per ottenere tutti gli elementi figlio nella directory corrente (rappresentata dal punto (.
)) e le relative sottodirectory con estensione *.txt
nome file. Usa il parametro Recurse per rendere ricorsivo il recupero e il parametro Includi per limitare il recupero ai file *.txt
.
L'operatore pipeline (|
) invia i risultati di questo comando a Move-Item
, che sposta i file di testo nella directory TextFiles
.
Se i file da spostare in C:\Textfiles
hanno lo stesso nome, Move-Item
visualizza un errore e continua, ma sposta un solo file con ogni nome in C:\Textfiles
. Gli altri file rimangono nelle directory originali.
Se la directory Textfiles
(o qualsiasi altro elemento del percorso di destinazione) non esiste, il comando non riesce. La directory mancante non viene creata automaticamente, anche se si usa il parametro force .
Move-Item
sposta il primo elemento in un file denominato Textfiles
e quindi visualizza un errore che spiega che il file esiste già.
Inoltre, per impostazione predefinita, Get-ChildItem
non sposta i file nascosti. Per spostare i file nascosti, usare il parametro Force con Get-ChildItem
.
Nota
In Windows PowerShell 2.0, quando si usa il parametro Recurse del cmdlet Get-ChildItem
, il valore del parametro percorso deve essere un contenitore. Usare il parametro Includi per specificare il filtro dell'estensione del nome file *.txt
(Get-ChildItem -Path .\* -Include *.txt -Recurse | Move-Item -Destination C:\TextFiles
).
Esempio 5: Spostare chiavi e valori del Registro di sistema in un'altra chiave
Questo comando sposta le chiavi e i valori del Registro di sistema all'interno della chiave del Registro di sistema MyCompany
in HKLM\Software
alla chiave MyNewCompany
. Il carattere jolly (*
) indica che il contenuto della chiave MyCompany
deve essere spostato, non la chiave stessa. In questo comando vengono omessi i nomi dei parametri Path e Destination.
Move-Item "HKLM:\software\mycompany\*" "HKLM:\software\mynewcompany"
Esempio 6: Spostare una directory e il relativo contenuto in una sottodirectory della directory specificata
Questo comando sposta la directory Logs[Sept`06]
(e il relativo contenuto) nella directory Logs[2006]
.
Move-Item -LiteralPath 'Logs[Sept`06]' -Destination 'Logs[2006]'
Il parametro LiteralPath viene usato invece di Path, perché il nome della directory originale include parentesi quadre e parentesi quadre destra ([
e ]
). Il percorso è racchiuso tra virgolette singole ('
), in modo che il simbolo di backtick (`
) non venga interpretato erroneamente.
Il parametro destination deve essere racchiuso tra virgolette singole perché include parentesi quadre che possono essere interpretate in modo non corretto.
Parametri
-Confirm
Richiede conferma prima di eseguire il cmdlet.
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 quando si esegue questo cmdlet, usare Invoke-Command.
Tipo: | PSCredential |
Posizione: | Named |
Valore predefinito: | Current user |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | True |
-Destination
Specifica il percorso della posizione in cui vengono spostati gli elementi. Il valore predefinito è la directory corrente. I caratteri jolly sono consentiti, ma il risultato deve essere risolto in un'unica posizione.
Per rinominare l'elemento da spostare, specificare un nuovo nome nel valore del parametro Destination.
Tipo: | String |
Posizione: | 1 |
Valore predefinito: | Current directory |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | True |
-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
. Sono consentiti caratteri jolly. Il parametro Exclude è effettivo solo quando il comando include il contenuto di un elemento, ad esempio C:\Windows\*
, in cui il carattere jolly specifica il contenuto della directory C:\Windows
.
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 di 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 l'esecuzione del comando senza chiedere conferma dell'utente. L'implementazione varia da provider a provider. Per altre informazioni, vedere about_Providers.
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
. Sono consentiti caratteri jolly. Il parametro Includi è effettivo solo quando il comando include il contenuto di un elemento, ad esempio C:\Windows\*
, in cui il carattere jolly specifica il contenuto della directory C:\Windows
.
Tipo: | String[] |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | True |
-LiteralPath
Specifica il percorso della posizione corrente degli elementi. Il valore di LiteralPath viene usato esattamente come viene tipizzato. Nessun carattere viene interpretato come caratteri 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 |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-PassThru
Restituisce un oggetto che rappresenta l'elemento spostato. Per impostazione predefinita, questo cmdlet non genera alcun output.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Path
Specifica il percorso della posizione corrente degli elementi. Il valore predefinito è la directory corrente. Sono consentiti caratteri jolly.
Tipo: | String[] |
Posizione: | 0 |
Valore predefinito: | Current directory |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | True |
-UseTransaction
Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per altre informazioni, vedere about_Transactions.
Tipo: | SwitchParameter |
Alias: | usetx |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-WhatIf
Mostra cosa accadrebbe se il cmdlet viene eseguito. 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 a questo cmdlet.
Output
None
Per impostazione predefinita, questo cmdlet non restituisce alcun output.
Quando si usa il parametro passThru, questo cmdlet restituisce un oggetto che rappresenta l'elemento spostato.
Note
Windows PowerShell include gli alias seguenti per Move-Item
:
mi
move
mv
Questo cmdlet sposta i file tra unità supportate dallo stesso provider, ma sposta le directory solo all'interno della stessa unità.
Poiché un comando
Move-Item
sposta le proprietà, il contenuto e gli elementi figlio di un elemento, tutti gli spostamenti vengono ricorsivi per impostazione predefinita.Questo 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.