Partilhar via


Copy-Item

Copia um item de um local para outro.

Sintaxe

Path (Predefinição)

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

Este 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 de registro e entradas na unidade de registro.

Este 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 ficheiro original não é eliminado.

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

Exemplo 2: Copiar o conteúdo do diretório para um diretório existente

Este exemplo copia o conteúdo do diretório C:\Logfiles para o 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 de diretórios.

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

Observação

Se você precisar incluir o diretório Logfiles na cópia, remova o \* do Path. Por exemplo:

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

Exemplo 3: Copiar o 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 no Exemplo 2. Ou, nomeie o novo diretório de destino com o mesmo que o diretório de origem.

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

Observação

Se o Caminho do 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 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 ficheiro para um computador remoto

Uma sessão é criada no 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 ficheiro original não é eliminado.

$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 no 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 no 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 ela 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 ficheiro para um computador remoto e, em seguida, mudar o nome do ficheiro

Uma sessão é criada no 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 possa ser anexado a mensagens de email. O ficheiro original não é eliminado.

$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 ficheiro remoto para o computador local

Uma sessão é criada no 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 D:\MyLocalData local usando as informações de sessão armazenadas na variável $Session. O ficheiro original não é eliminado.

$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 no 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 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: Copie recursivamente todo o conteúdo de uma pasta remota para o computador local

Uma sessão é criada no 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 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 de scripts se ela 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 confirmação antes de executar o cmdlet.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False
Aliases:Cf.

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Container

Indica que esse cmdlet preserva objetos de contêiner durante a operação de cópia. Por padrão, o parâmetro Container é definido como True.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:True
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Credential

Observação

Esse parâmetro não é suportado por nenhum provedor instalado com o PowerShell. Para representar outro usuário ou elevar suas credenciais ao executar esse cmdlet, use Invoke-Command.

Propriedades dos parâmetros

Tipo:PSCredential
Default value:Current user
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos: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 dos parâmetros

Tipo:String
Default value:Current directory
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:1
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos: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 coringa são permitidos. O parâmetro Exclude só é efetivo quando o comando inclui o conteúdo de um item, como C:\Windows\*, onde o caractere curinga especifica o conteúdo do diretório C:\Windows.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Filter

Especifica um filtro para qualificar o parâmetro Path. O provedor FileSystem é o único provedor do PowerShell instalado que oferece suporte ao uso de filtros. A sintaxe da linguagem de filtro do FileSystem pode ser encontrada em about_Wildcards. Os filtros são mais eficientes do que outros parâmetros, porque o provedor os aplica quando o cmdlet obtém os objetos em vez de fazer com que o PowerShell filtre os objetos depois que eles são recuperados.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Force

Indica que esse cmdlet copia itens que não podem ser alterados de outra forma, como copiar sobre um arquivo somente leitura ou alias.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-FromSession

Especifica o objeto de 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 na máquina remota.

Propriedades dos parâmetros

Tipo:PSSession
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos: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 coringa são permitidos. O parâmetro Include só é efetivo quando o comando inclui o conteúdo de um item, como C:\Windows\*, onde o caractere curinga especifica o conteúdo do diretório C:\Windows.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-LiteralPath

Especifica um caminho para um ou mais locais. O valor de LiteralPath é usado exatamente como é digitado. Nenhum caractere é interpretado como carta curinga. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. Aspas simples indicam ao PowerShell para não interpretar quaisquer caracteres como sequências de escape.

Para obter mais informações, consulte about_Quoting_Rules.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:PSPath

Conjuntos de parâmetros

LiteralPath
Position:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos: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 dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Path

Especifica, como uma matriz de cadeia de caracteres, o caminho para os itens a serem copiados. Caracteres coringa são permitidos.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

Path
Position:0
Obrigatório:True
Valor do pipeline:True
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Recurse

Indica que esse cmdlet faz uma cópia recursiva.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-ToSession

Especifica a 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 na máquina remota.

Propriedades dos parâmetros

Tipo:PSSession
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-UseTransaction

Inclui o comando na transação ativa. Este parâmetro é válido somente quando uma transação está em andamento. Para obter mais informações, consulte about_Transactions.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False
Aliases:Usetx

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False
Aliases:Wi

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos: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

Você pode encaminhar uma cadeia de caracteres que contenha 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.

Notas

Este cmdlet foi projetado para trabalhar com os dados expostos por qualquer provedor. Para listar os provedores disponíveis em sua sessão, digite Get-PSProvider. Para obter mais informações, consulte about_Providers.