Muove un elemento da una posizione ad un’altra.
- Sintassi
- Descrizione
- Esempi
- Esempio 1: Spostare un file in un’altra directory e rinominarlo
- Esempio 2: Spostare una directory e il suo contenuto in un’altra directory
- Esempio 3: Spostare tutti i file di una determinata estensione dalla directory corrente a un’altra directory
- Esempio 4: Spostare ricorsivamente tutti i file di una determinata estensione dalla directory corrente a un’altra directory
- Esempio 5: Sposta chiavi e valori di registro in un’altra chiave
- Esempio 6: Sposta una directory e il suo contenuto in una sottodirectory della directory specificata
- Parametri
- Inputs
- Outputs
- Note
Sintassi
Descrizione
Il cmdlet Move-Item
sposta un elemento, incluse le sue proprietà, il contenuto e gli elementi figli, da una posizione ad un’altra. Le posizioni devono essere supportate dallo stesso provider.Per esempio, può spostare un file o una sottodirectory da una directory a un’altra o spostare una sottochiave di registro da una chiave a un’altra.Quando si sposta un elemento, questo viene aggiunto alla nuova posizione e cancellato dalla sua posizione originale.
Esempi
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 suo contenuto in un’altra directory
Questo comando sposta la directory C:\Temp
e il suo contenuto nella directory C:\Logs
.La directory “Temp”, e tutte le sue sottodirectory e file, appaiono quindi nella directory “Logs”.
Move-Item -Path C:\Temp -Destination C:\Logs
Esempio 3: Spostare tutti i file di una determinata estensione 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 ricorsivamente tutti i file di una determinata estensione dalla directory corrente a un’altra directory
Questo comando sposta tutti i file di testo dalla directory corrente e tutte le sottodirectory, ricorsivamente, 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 figli nella directory corrente (rappresentata dal punto) e nelle sue sottodirectory che hanno un’estensione “.txt” e usa il parametro Recurse per rendere il recupero ricorsivo e il parametro Include 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 che devono essere spostati in “C:\Textfiles” hanno lo stesso nome, Move-Item
visualizza un errore e continua, ma sposta solo un file con ogni nome in “C:\Textfiles”.Gli altri file rimangono nelle loro directory originali.
Se la directory “Textfiles” (o qualsiasi altro elemento del percorso di destinazione) non esiste, il comando fallisce.La directory mancante non viene creata per voi, anche se usate il parametro Force.Move-Item
sposta il primo elemento in un file chiamato “Textfiles” e poi 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, usa il parametro Force con Get-ChildItem
.
Nota
In Windows PowerShell 2.0, quando si usa il parametro Recurse, non è possibile spostare i file nascosti.0, quando si usa il parametro Recurse della cmdlet Get-ChildItem
, il valore del parametro Path deve essere un contenitore.Usa il parametro Include per specificare il filtro di estensione del nome del file .txt (Get-ChildItem -Path .\* -Include *.txt -Recurse | Move-Item -Destination C:\TextFiles
).
Esempio 5: Sposta chiavi e valori di registro in un’altra chiave
Questo comando sposta le chiavi e i valori di registro nella chiave di registro “MyCompany” inHKLM\Software
nella chiave “MyNewCompany”.Il carattere jolly (*
) indica che il contenuto della chiave “MyCompany” dovrebbe essere spostato, non la chiave stessa.In questo comando, i nomi opzionali dei parametri Path e Destination sono omessi.
Move-Item "HKLM:\software\mycompany\*" "HKLM:\software\mynewcompany"
Esempio 6: Sposta una directory e il suo contenuto in una sottodirectory della directory specificata
Questo comando sposta la directory “Logs” (e il suo contenuto) nella directory “Logs”.
Move-Item -LiteralPath 'Logs' -Destination 'Logs'
Il parametro LiteralPath è usato al posto di Path, perché il nome originale della directory include caratteri di parentesi sinistra e destra (“”); il percorso è inoltre racchiuso tra virgolette singole (‘ ‘), in modo che il simbolo di backtick (`) non sia male interpretato.
Il parametro Destinazione non richiede un percorso letterale, perché anche la variabile Destinazione deve essere racchiusa tra virgolette singole, perché include parentesi che possono essere male interpretate.
Parametri
Vi chiede una conferma prima di eseguire il cmdlet.
Type: | SwitchParameter |
Alias: | cf |
Posizione: | Nominato |
Valore predefinito: | Falso |
Accetta ingresso pipeline: | Falso |
Accetta caratteri jolly: | Falso |
Nota
Questo parametro non è supportato da nessun provider installato con PowerShell.Per impersonare un altro utente, o elevare le tue credenziali quando esegui questo cmdlet, usa Invoke-Command.
Type: | PSCredential |
Posizione: | Nominato |
Valore predefinito: | Utente corrente |
Accetta input pipeline: | Vero |
Accetta caratteri jolly: | Falso |
Specifica il percorso della posizione dove gli elementi vengono spostati.L’impostazione predefinita è la directory corrente.I caratteri jolly sono permessi, ma il risultato deve specificare una singola posizione.
Per rinominare l’elemento da spostare, specificate un nuovo nome nel valore del parametro Destination.
Tipo: | Stringa |
Posizione: | 1 |
Valore predefinito: | Cartella corrente |
Accetta l’input della pipeline: | True |
Accetta caratteri jolly: | True |
Specifica, come array di stringhe, uno o più elementi che questa cmdlet esclude nell’operazione. Il valore di questo parametro qualifica il parametro Path. Inserisci un elemento o uno schema di percorso, come*.txt
. I caratteri jolly sono permessi. Il parametro Exclude è efficace solo quando il comando include il contenuto di un elemento, come C:\Windows\*
, dove il carattere jolly specifica il contenuto della directory C:\Windows
.
Tipo: | Stringa |
Posizione: | Nominato |
Valore predefinito: | Nessuno |
Accetta ingresso pipeline: | False |
Accetta caratteri jolly: | True |
Specifica un filtro per qualificare il parametro Path. Il FileSystemprovider è l’unico provider PowerShell installato che supporta l’uso di filtri. Puoi trovare la sintassi per il linguaggio dei filtri FileSystem in about_Wildcards.I filtri sono più efficienti di altri parametri, perché il provider li applica quando il cmdletgets gli oggetti piuttosto che avere PowerShell che filtra gli oggetti dopo che sono stati recuperati.
Type: | Stringa |
Posizione: | Nominato |
Valore predefinito: | Nessuno |
Accetta ingresso pipeline: | False |
Accetta caratteri jolly: | True |
Forza l’esecuzione del comando senza chiedere conferma all’utente.L’implementazione varia da provider a provider.Per maggiori informazioni, vedere about_Providers.
Type: | SwitchParameter |
Position: | Named |
Valore predefinito: | False |
Accetta l’input della pipeline: | Falso |
Accetta caratteri jolly: | Falso |
Specifica, come array di stringhe, uno o più elementi che questa cmdlet include nell’operazione. Il valore di questo parametro qualifica il parametro Path. Inserisci un elemento o uno schema di percorso, come"*.txt"
. I caratteri jolly sono permessi. Il parametro Include è efficace solo quando il comando include il contenuto di un elemento, come C:\Windows\*
, dove il carattere jolly specifica il contenuto della directory C:\Windows
.
Tipo: | Stringa |
Posizione: | Nominato |
Valore predefinito: | Nessuno |
Accetta ingresso pipeline: | False |
Accetta caratteri jolly: | True |
Specifica un percorso verso una o più posizioni. Il valore di LiteralPath è usato esattamente come viene digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, racchiudilo tra virgolette singole. Le virgolette singole dicono a PowerShell di non interpretare alcun carattere come sequenza di escape.
Per maggiori informazioni, vedi about_Quoting_Rules.
Type: | String |
Alias: | PSPath, LP |
Posizione: | Nominato |
Valore predefinito: | Nessuno |
Accetta ingresso pipeline: | Vero |
Accetta caratteri jolly: | Falso |
Ritorna un oggetto che rappresenta l’elemento con cui stai lavorando.Per impostazione predefinita, questo cmdlet non genera alcun output.
Type: | SwitchParameter |
Position: | Named |
Valore predefinito: | False |
Accetta ingresso pipeline: | Falso |
Accetta caratteri jolly: | Falso |
Specifica il percorso della posizione corrente degli elementi.L’impostazione predefinita è la directory corrente.I caratteri jolly sono permessi.
Tipo: | Stringa |
Posizione: | 0 |
Valore predefinito: | Current directory |
Accetta l’input della pipeline: | Vero |
Accetta caratteri jolly: | Vero |
Mostra cosa accadrebbe se il cmdlet venisse eseguito.Il cmdlet non viene eseguito.
Type: | SwitchParameter |
Alias: | wi |
Posizione: | Nominato |
Valore predefinito: | Falso |
Accetta ingresso pipeline: | Falso |
Accetta caratteri jolly: | Falso |
Inputs
Stringa
Puoi inviare una stringa che contiene un percorso a questa cmdlet.
Outputs
Nessuno o un oggetto che rappresenta l’elemento spostato
Quando usi il parametro PassThru, questa cmdlet genera un oggetto che rappresenta l’elemento spostato, altrimenti non genera alcun output.
Note
- Questo cmdlet sposterà i file tra le unità supportate dallo stesso provider, ma sposterà le directory solo all’interno della stessa unità.
- Perché un comando
Move-Item
sposta le proprietà, i contenuti e gli elementi figli di un elemento, tutti gli spostamenti sono ricorsivi per default. - Questo cmdlet è progettato per lavorare con i dati esposti da qualsiasi provider.Per elencare i provider disponibili nella tua sessione, digita
Get-PSProvider
.Per maggiori informazioni, vedi about_Providers.
- Clear-Item
- Copy-Item
- Get-Item
- Invoke-Item
- New-Item
- Remove-Item
- Rename-Item
- Set-Item
- about_Providers