Copy-Item
Copia um item de um local para outro.
Sintaxe
Path (Default)
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>]
Description
O cmdlet Copy-Item copia um item de um local para outro local no mesmo namespace.
Por exemplo, ele pode copiar um arquivo para uma pasta, mas não pode copiar um arquivo para uma unidade de certificado.
Esse cmdlet não corta nem exclui os itens que estão sendo copiados. Os itens específicos que o cmdlet pode copiar dependem do provedor do PowerShell que expõe o item. Por exemplo, ele pode copiar arquivos e diretórios em uma unidade do sistema de arquivos e chaves e entradas do Registro na unidade do Registro.
Esse cmdlet pode copiar e renomear itens no mesmo comando. Para renomear um item, insira o novo nome no valor do parâmetro Destination. Para renomear um item e não copiá-lo, use o cmdlet Rename-Item.
Exemplos
Exemplo 1: copiar um arquivo para o diretório especificado
Este exemplo copia o arquivo mar1604.log.txt para o diretório C:\Presentation. O arquivo original não é excluído.
Copy-Item "C:\Wabash\Logfiles\mar1604.log.txt" -Destination "C:\Presentation"
Exemplo 2: Copiar conteúdo do diretório para um diretório existente
Este exemplo copia o conteúdo do diretório C:\Logfiles no diretório C:\Drawings existente. O diretório Logfiles não é copiado.
Se o diretório Logfiles contiver arquivos em subdiretórios, esses subdiretórios serão copiados com suas árvores de arquivos intactas. Por padrão, o parâmetro Container é definido como True, que preserva a estrutura do diretório.
Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings" -Recurse
Observação
Se você precisar incluir o diretório
Copy-Item -Path "C:\Logfiles" -Destination "C:\Drawings" -Recurse
Exemplo 3: Copiar conteúdo do diretório para um novo diretório
Este exemplo copia o conteúdo do diretório de origem C:\Logfiles e cria um novo diretório de destino. O novo diretório de destino, \Logs, é criado em C:\Drawings.
Para incluir o nome do diretório de origem, copie para um diretório de destino existente, conforme mostrado em Exemplo 2. Ou nomeie o novo diretório de destino com o mesmo diretório de origem.
Copy-Item -Path "C:\Logfiles" -Destination "C:\Drawings\Logs" -Recurse
Observação
Se o Path incluir \*, todo o conteúdo do arquivo do diretório, sem as árvores de subdiretório, será copiado para o novo diretório de destino. Por exemplo:
Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings\Logs" -Recurse
Exemplo 4: copiar um arquivo para o diretório especificado e renomear o arquivo
Este exemplo usa o cmdlet Copy-Item para copiar o script Get-Widget.ps1 do diretório \\Server01\Share para o diretório \\Server12\ScriptArchive. Como parte da operação de cópia, o comando altera o nome do item de Get-Widget.ps1 para Get-Widget.ps1.txt, para que ele possa ser anexado a mensagens de email.
Copy-Item "\\Server01\Share\Get-Widget.ps1" -Destination "\\Server12\ScriptArchive\Get-Widget.ps1.txt"
Exemplo 5: copiar um arquivo para um computador remoto
Uma sessão é criada para o computador remoto chamado Server01 com a credencial de Contoso\User01 e armazena os resultados na variável chamada $Session.
O cmdlet Copy-Item copia test.log da pasta D:\Folder001 para a pasta C:\Folder001_Copy no computador remoto usando as informações de sessão armazenadas na variável $Session. O arquivo original não é excluído.
$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "D:\Folder001\test.log" -Destination "C:\Folder001_Copy\" -ToSession $Session
Exemplo 6: Copiar todo o conteúdo de uma pasta para um computador remoto
Uma sessão é criada para o computador remoto chamado Server01 com a credencial de Contoso\User01 e armazena os resultados na variável chamada $Session.
O cmdlet Copy-Item copia todo o conteúdo da pasta D:\Folder002 para o diretório C:\Folder002_Copy no computador remoto usando as informações de sessão armazenadas na variável $Session. As subpastas são copiadas com suas árvores de arquivos intactas.
$Session = New-PSSession -ComputerName "Server02" -Credential "Contoso\User01"
Copy-Item "D:\Folder002\" -Destination "C:\Folder002_Copy\" -ToSession $Session
Exemplo 7: copiar recursivamente todo o conteúdo de uma pasta para um computador remoto
Uma sessão é criada para o computador remoto chamado Server01 com a credencial de Contoso\User01 e armazena os resultados na variável chamada $Session.
O cmdlet Copy-Item copia todo o conteúdo da pasta D:\Folder003 para o diretório C:\Folder003_Copy no computador remoto usando as informações de sessão armazenadas na variável $Session. As subpastas são copiadas com suas árvores de arquivos intactas. Como o parâmetro Recurse é usado, a operação cria a pasta Folder003_Copy se ainda não existir.
$Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\User01"
Copy-Item "D:\Folder003\" -Destination "C:\Folder003_Copy\" -ToSession $Session -Recurse
Exemplo 8: copiar um arquivo para um computador remoto e renomear o arquivo
Uma sessão é criada para o computador remoto chamado Server01 com a credencial de Contoso\User01 e armazena os resultados na variável chamada $Session.
O cmdlet Copy-Item copia scriptingexample.ps1 da pasta D:\Folder004 para a pasta C:\Folder004_Copy no computador remoto usando as informações de sessão armazenadas na variável $Session. Como parte da operação de cópia, o comando altera o nome do item de scriptingexample.ps1 para scriptingexample_copy.ps1, para que ele possa ser anexado a mensagens de email. O arquivo original não é excluído.
$Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\User01"
Copy-Item "D:\Folder004\scriptingexample.ps1" -Destination "C:\Folder004_Copy\scriptingexample_copy.ps1" -ToSession $Session
Exemplo 9: Copiar um arquivo remoto para o computador local
Uma sessão é criada para o computador remoto chamado Server01 com a credencial de Contoso\User01 e armazena os resultados na variável chamada $Session.
O cmdlet Copy-Item copia test.log do C:\MyRemoteData\ remoto para a pasta de D:\MyLocalData local usando as informações de sessão armazenadas na variável $Session. O arquivo original não é excluído.
$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\test.log" -Destination "D:\MyLocalData\" -FromSession $Session
Exemplo 10: Copiar todo o conteúdo de uma pasta remota para o computador local
Uma sessão é criada para o computador remoto chamado Server01 com a credencial de Contoso\User01 e armazena os resultados na variável chamada $Session.
O cmdlet Copy-Item copia todo o conteúdo da pasta C:\MyRemoteData\scripts remota para a pasta de D:\MyLocalData local usando as informações de sessão armazenadas na variável $Session. Se a pasta scripts contiver arquivos em subpastas, essas subpastas serão copiadas com suas árvores de arquivos intactas.
$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\scripts" -Destination "D:\MyLocalData\" -FromSession $Session
Exemplo 11: copiar recursivamente todo o conteúdo de uma pasta remota para o computador local
Uma sessão é criada para o computador remoto chamado Server01 com a credencial de Contoso\User01 e armazena os resultados na variável chamada $Session.
O cmdlet Copy-Item copia todo o conteúdo da pasta C:\MyRemoteData\scripts remota para a pasta de D:\MyLocalData\scripts local usando as informações de sessão armazenadas na variável $Session. Como o parâmetro Recurse é usado, a operação cria a pasta scripts se ainda não existir. Se a pasta scripts contiver arquivos em subpastas, essas subpastas serão copiadas com suas árvores de arquivos intactas.
$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\scripts" -Destination "D:\MyLocalData\scripts" -FromSession $Session -Recurse
Parâmetros
-Confirm
Solicita sua confirmação antes de executar o cmdlet.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | False |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | cf |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Container
Indica que esse cmdlet preserva objetos de contêiner durante a operação de cópia. Por padrão, o parâmetro de contêiner
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | True |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Credential
Observação
Esse parâmetro não tem suporte para nenhum provedor instalado com o PowerShell. Para executar este cmdlet em nome de outro usuário ou elevar suas credenciais, use Invoke-Command.
Propriedades do parâmetro
| Tipo: | PSCredential |
| Valor padrão: | Current user |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-Destination
Especifica o caminho para o novo local. O padrão é o diretório atual.
Para renomear o item que está sendo copiado, especifique um novo nome no valor do parâmetro Destination.
Propriedades do parâmetro
| Tipo: | String |
| Valor padrão: | Current directory |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | 1 |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-Exclude
Especifica, como uma matriz de cadeia de caracteres, um item ou itens que esse cmdlet exclui na operação. O valor desse parâmetro qualifica o parâmetro Path. Insira um elemento ou padrão de caminho, como *.txt. Caracteres curinga são permitidos. O parâmetro Excluir só é eficaz quando o comando inclui o conteúdo de um item, como C:\Windows\*, em que o caractere curinga especifica o conteúdo do diretório C:\Windows.
Propriedades do parâmetro
| Tipo: | String[] |
| Valor padrão: | None |
| Dá suporte a curingas: | True |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Filter
Especifica um filtro para qualificar o parâmetro Path. O provedor FileSystem é o único provedor do PowerShell instalado que dá suporte ao uso de filtros. Você pode encontrar a sintaxe da linguagem de filtragem FileSystem no about_Wildcards. Os filtros são mais eficientes do que outros parâmetros, pois o provedor os aplica quando o cmdlet obtém os objetos em vez de fazer o PowerShell filtrar os objetos depois que eles são recuperados.
Propriedades do parâmetro
| Tipo: | String |
| Valor padrão: | None |
| Dá suporte a curingas: | True |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Force
Indica que esse cmdlet copia itens que não podem ser alterados de outra forma, como copiar em um arquivo somente leitura ou alias.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | False |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-FromSession
Especifica o objeto PSSession do qual um arquivo remoto está sendo copiado. Quando você usa esse parâmetro, os parâmetros Path e LiteralPath referem-se ao caminho local no computador remoto.
Propriedades do parâmetro
| Tipo: | PSSession |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Include
Especifica, como uma matriz de cadeia de caracteres, um item ou itens que esse cmdlet inclui na operação. O valor desse parâmetro qualifica o parâmetro Path. Insira um elemento ou padrão de caminho, como "*.txt". Caracteres curinga são permitidos. O parâmetro Include só é eficaz quando o comando inclui o conteúdo de um item, como C:\Windows\*, em que o caractere curinga especifica o conteúdo do diretório C:\Windows.
Propriedades do parâmetro
| Tipo: | String[] |
| Valor padrão: | None |
| Dá suporte a curingas: | True |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-LiteralPath
Especifica um caminho para um ou mais locais. O valor de LiteralPath é usado exatamente como é digitado. Nenhum caractere é interpretado como caractere curinga. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. Aspas simples indicam ao PowerShell que não deve interpretar nenhum caractere como uma sequência de escape.
Para mais informações, consulte sobre_Regras_de_Citação.
Propriedades do parâmetro
| Tipo: | String[] |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | PSPath |
Conjuntos de parâmetros
LiteralPath
| Cargo: | Named |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-PassThru
Retorna um objeto que representa o item com o qual você está trabalhando. Por padrão, esse cmdlet não gera nenhuma saída.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | False |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Path
Especifica, como uma matriz de cadeia de caracteres, o caminho para os itens a serem copiados. Caracteres curinga são permitidos.
Propriedades do parâmetro
| Tipo: | String[] |
| Valor padrão: | None |
| Dá suporte a curingas: | True |
| DontShow: | False |
Conjuntos de parâmetros
Path
| Cargo: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | True |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-Recurse
Indica que esse cmdlet faz uma cópia recursiva.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | False |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-ToSession
Especifica o objeto PSSession para o qual um arquivo remoto está sendo copiado. Quando você usa esse parâmetro, o parâmetro Destination refere-se ao caminho local no computador remoto.
Propriedades do parâmetro
| Tipo: | PSSession |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-UseTransaction
Inclui o comando na transação ativa. Esse parâmetro só é válido quando uma transação está em andamento. Para obter mais informações, consulte about_Transactions.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | False |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | usetx |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-WhatIf
Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | False |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | wi |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
CommonParameters
Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.
Entradas
String
É possível direcionar uma cadeia de caracteres que contém um caminho para este cmdlet.
Saídas
None or an object representing the copied item
Quando você usa o parâmetro PassThru, esse cmdlet retorna um objeto que representa o item copiado. Caso contrário, esse cmdlet não gerará nenhuma saída.
Observações
Esse cmdlet foi projetado para funcionar com os dados expostos por qualquer provedor. Para listar os provedores disponíveis na sessão, digite Get-PSProvider. Para obter mais informações, consulte about_Providers.