Move-Item

Dic 18, 2021
Modulo: Microsoft.PowerShell.Management

Muove un elemento da una posizione ad un’altra.

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

-Conferma

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

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

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

-Exclude

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

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

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

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

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

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

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

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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.