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.