Condividi tramite


Copy-Item

Copia un elemento da una posizione a un'altra.

Sintassi

Path (Impostazione predefinita)

Copy-Item
    [-Path] <String[]>
    [[-Destination] <String>]
    [-Container]
    [-Force]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-Recurse]
    [-PassThru]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-UseTransaction]
    [-FromSession <PSSession>]
    [-ToSession <PSSession>]
    [<CommonParameters>]

LiteralPath

Copy-Item
    [[-Destination] <String>]
    -LiteralPath <String[]>
    [-Container]
    [-Force]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-Recurse]
    [-PassThru]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-UseTransaction]
    [-FromSession <PSSession>]
    [-ToSession <PSSession>]
    [<CommonParameters>]

Descrizione

Il cmdlet Copy-Item copia un elemento da una posizione a un'altra nello stesso spazio dei nomi. Ad esempio, può copiare un file in una cartella, ma non può copiare un file in un'unità certificato.

Questo cmdlet non taglia o elimina gli elementi copiati. Gli elementi specifici che il cmdlet può copiare dipendono dal provider di PowerShell che espone l'elemento. Ad esempio, può copiare file e directory in un'unità del file system e chiavi e voci del Registro di sistema nell'unità del Registro di sistema.

Questo cmdlet può copiare e rinominare gli elementi nello stesso comando. Per rinominare un elemento, immettere il nuovo nome nel valore del parametro Destination. Per rinominare un elemento e non copiarlo, usare il cmdlet Rename-Item.

Esempio

Esempio 1: Copiare un file nella directory specificata

In questo esempio il file mar1604.log.txt viene copiato nella directory C:\Presentation. Il file originale non viene eliminato.

Copy-Item "C:\Wabash\Logfiles\mar1604.log.txt" -Destination "C:\Presentation"

Esempio 2: Copiare il contenuto della directory in una directory esistente

In questo esempio il contenuto della directory C:\Logfiles viene copiato nella directory C:\Drawings esistente. La directory Logfiles non viene copiata.

Se la Logfiles directory contiene file in sottodirectory, tali sottodirectory vengono copiate con i relativi alberi di file intatti. Per impostazione predefinita, il parametro contenitore è impostato su True, che mantiene la struttura di directory.

Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings" -Recurse

Annotazioni

Se è necessario includere la Logfiles directory nella copia, rimuoverla \* dal percorso. Per esempio:

Copy-Item -Path "C:\Logfiles" -Destination "C:\Drawings" -Recurse

Esempio 3: Copiare il contenuto della directory in una nuova directory

In questo esempio viene copiato il contenuto della directory di origine C:\Logfiles e viene creata una nuova directory di destinazione. La nuova directory di destinazione, \Logs viene creata in C:\Drawings.

Per includere il nome della directory di origine, copiare in una directory di destinazione esistente, come illustrato in esempio 2. In alternativa, assegnare alla nuova directory di destinazione lo stesso nome della directory di origine.

Copy-Item -Path "C:\Logfiles" -Destination "C:\Drawings\Logs" -Recurse

Annotazioni

Se il percorso include \*, tutto il contenuto dei file della directory, senza gli alberi delle sottodirectory, viene copiato nella nuova directory di destinazione. Per esempio:

Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings\Logs" -Recurse

Esempio 4: Copiare un file nella directory specificata e rinominare il file

In questo esempio viene usato il cmdlet Copy-Item per copiare lo script Get-Widget.ps1 dalla directory \\Server01\Share alla directory \\Server12\ScriptArchive. Come parte dell'operazione di copia, il comando modifica il nome dell'elemento da Get-Widget.ps1 a Get-Widget.ps1.txt, in modo che possa essere allegato ai messaggi di posta elettronica.

Copy-Item "\\Server01\Share\Get-Widget.ps1" -Destination "\\Server12\ScriptArchive\Get-Widget.ps1.txt"

Esempio 5: Copiare un file in un computer remoto

Viene creata una sessione nel computer remoto denominato Server01 con le credenziali di Contoso\User01 e archivia i risultati nella variabile denominata $Session.

Il cmdlet Copy-Item copia test.log dalla cartella D:\Folder001 alla cartella C:\Folder001_Copy nel computer remoto usando le informazioni di sessione archiviate nella variabile $Session. Il file originale non viene eliminato.

$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "D:\Folder001\test.log" -Destination "C:\Folder001_Copy\" -ToSession $Session

Esempio 6: Copiare l'intero contenuto di una cartella in un computer remoto

Viene creata una sessione nel computer remoto denominato Server01 con le credenziali di Contoso\User01 e archivia i risultati nella variabile denominata $Session.

Il cmdlet Copy-Item copia l'intero contenuto dalla cartella D:\Folder002 alla directory C:\Folder002_Copy nel computer remoto usando le informazioni di sessione archiviate nella variabile $Session. Le sottocartelle vengono copiate con gli alberi dei file intatti.

$Session = New-PSSession -ComputerName "Server02" -Credential "Contoso\User01"
Copy-Item "D:\Folder002\" -Destination "C:\Folder002_Copy\" -ToSession $Session

Esempio 7: Copiare in modo ricorsivo l'intero contenuto di una cartella in un computer remoto

Viene creata una sessione nel computer remoto denominato Server01 con le credenziali di Contoso\User01 e archivia i risultati nella variabile denominata $Session.

Il cmdlet Copy-Item copia l'intero contenuto dalla cartella D:\Folder003 alla directory C:\Folder003_Copy nel computer remoto usando le informazioni di sessione archiviate nella variabile $Session. Le sottocartelle vengono copiate con gli alberi dei file intatti. Poiché viene utilizzato il parametro Recurse , l'operazione crea la Folder003_Copy cartella se non esiste già.

$Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\User01"
Copy-Item "D:\Folder003\" -Destination "C:\Folder003_Copy\" -ToSession $Session -Recurse

Esempio 8: Copiare un file in un computer remoto e quindi rinominare il file

Viene creata una sessione nel computer remoto denominato Server01 con le credenziali di Contoso\User01 e archivia i risultati nella variabile denominata $Session.

Il cmdlet Copy-Item copia scriptingexample.ps1 dalla cartella D:\Folder004 alla cartella C:\Folder004_Copy nel computer remoto usando le informazioni di sessione archiviate nella variabile $Session. Come parte dell'operazione di copia, il comando modifica il nome dell'elemento da scriptingexample.ps1 a scriptingexample_copy.ps1, in modo che possa essere allegato ai messaggi di posta elettronica. Il file originale non viene eliminato.

$Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\User01"
Copy-Item "D:\Folder004\scriptingexample.ps1" -Destination "C:\Folder004_Copy\scriptingexample_copy.ps1" -ToSession $Session

Esempio 9: Copiare un file remoto nel computer locale

Viene creata una sessione nel computer remoto denominato Server01 con le credenziali di Contoso\User01 e archivia i risultati nella variabile denominata $Session.

Il cmdlet Copy-Item copia test.log dalla C:\MyRemoteData\ remota alla cartella D:\MyLocalData locale usando le informazioni di sessione archiviate nella variabile $Session. Il file originale non viene eliminato.

$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\test.log" -Destination "D:\MyLocalData\" -FromSession $Session

Esempio 10: Copiare l'intero contenuto di una cartella remota nel computer locale

Viene creata una sessione nel computer remoto denominato Server01 con le credenziali di Contoso\User01 e archivia i risultati nella variabile denominata $Session.

Il cmdlet Copy-Item copia l'intero contenuto dalla cartella C:\MyRemoteData\scripts remota nella cartella D:\MyLocalData locale usando le informazioni di sessione archiviate nella variabile $Session. Se la cartella scripts contiene file in sottocartelle, tali sottocartelle vengono copiate con le relative strutture di file intatte.

$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\scripts" -Destination "D:\MyLocalData\" -FromSession $Session

Esempio 11: copiare in modo ricorsivo l'intero contenuto di una cartella remota nel computer locale

Viene creata una sessione nel computer remoto denominato Server01 con le credenziali di Contoso\User01 e archivia i risultati nella variabile denominata $Session.

Il cmdlet Copy-Item copia l'intero contenuto dalla cartella C:\MyRemoteData\scripts remota nella cartella D:\MyLocalData\scripts locale usando le informazioni di sessione archiviate nella variabile $Session. Poiché viene usato il parametro recurse, l'operazione crea la cartella degli script, se non esiste già. Se la cartella scripts contiene file in sottocartelle, tali sottocartelle vengono copiate con le relative strutture di file intatte.

$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\scripts" -Destination "D:\MyLocalData\scripts" -FromSession $Session -Recurse

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

-Container

Indica che questo cmdlet mantiene gli oggetti contenitore durante l'operazione di copia. Per impostazione predefinita, il parametro Contenitore è impostato su True.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:True
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

-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

-Destination

Specifica il percorso della nuova posizione. Il valore predefinito è la directory corrente.

Per rinominare l'elemento da copiare, specificare un nuovo nome nel valore del parametro Destination.

Proprietà dei parametri

Tipo:String
Valore predefinito:Current directory
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:1
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.

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

Indica che questo cmdlet copia gli elementi che non possono essere altrimenti modificati, ad esempio la copia su un file o un alias di sola lettura.

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

-FromSession

Specifica l'oggetto PSSession da cui viene copiato un file remoto. Quando si usa questo parametro, i parametri Path e LiteralPath fanno riferimento al percorso locale nel computer remoto.

Proprietà dei parametri

Tipo:PSSession
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

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

Per altre informazioni, vedere about_Quoting_Rules.

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

-PassThru

Restituisce un oggetto che rappresenta l'elemento con cui si sta lavorando. Per impostazione predefinita, questo cmdlet non genera alcun output.

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

-Path

Specifica, come matrice di stringhe, il percorso degli elementi da copiare. 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 esegue una copia ricorsiva.

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

-ToSession

Specifica l'oggetto PSSession in cui viene copiato un file remoto. Quando si usa questo parametro, il parametro destination fa riferimento al percorso locale nel computer remoto.

Proprietà dei parametri

Tipo:PSSession
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 a questo cmdlet.

Output

None or an object representing the copied item

Quando si utilizza il parametro PassThru , questo cmdlet restituisce un oggetto che rappresenta l'elemento copiato. In caso contrario, questo cmdlet non genera alcun output.

Note

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, consultare about_Providers.