> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# xbCopy (xbcopy.exe)

> xbCopy (xbcopy.exe)

Use esta ferramenta para fazer uma cópia diferencial de arquivos de e para seu console de desenvolvimento.

| Coluna 1 |
| - |
| **xbcopy** *source* *destination* \[search\_pattern\[...]] \[*options*] \[/s\[:]*levels*] \[/X\[:]*address\[+\<accesskey>]*] |

| Opção | Descrição |
| - | - |
| *source* | Caminho do diretório de origem |
| *destination* | Caminho do diretório de destino |
| *search\_pattern* | Especifica os arquivos a serem copiados ou os padrões de pesquisa (os caracteres curinga \* e ? têm suporte). Se você não especificar esse parâmetro, \* será usado como valor padrão. Os padrões de pesquisa são separados por um espaço e podem incluir um link para um arquivo, por exemplo, xbcopy.exe c:\mysource xD:\console\path \*.png \*.txt specific\_file.json |
| *options* | Especifica as opções a serem usadas com o comando xbcopy, incluindo opções de cópia, modos e registro em log. |
| /s:\[levels] | Copia os arquivos que estão em um diretório especificado e em todos os seus subdiretórios. Levels é um inteiro opcional que especifica a profundidade de recursão dos subdiretórios. Por exemplo, /s:1 processa somente o diretório especificado e os subdiretórios um nível abaixo dele. Se /s for especificado, mas levels não, todos os subdiretórios serão incluídos. |
| /X\[:]*address\[+\<accesskey>]* | - Use esta opção para especificar o nome do host ou o endereço (mostrado como **Tools IP** no console) de um console de destino sem alterar o console padrão. Para obter detalhes sobre como definir um nome de host para um console, veja [Definir um nome de host para o endereço IP do console](/pt-BR/home/setup-install/dev-kit-settings/setting-a-hostname).<br />- Se você não usar esta opção, será usado o console padrão (definido anteriormente por [Conexão (xbconnect.exe)](/pt-BR/tools/tools-console/commandlinetools/xbconnect)). <br />- Use a string *accesskey* para fornecer acesso ao console somente às pessoas que têm a chave de acesso. <br />- Defina a chave de acesso usando o comando **xbconfig accesskey=your-key** e, em seguida, reinicie o console para que a chave de acesso entre em vigor.<br />- Para acessar um console configurado com uma chave de acesso, você deve incluir um sinal de adição (+) e a chave de acesso após o endereço IP ou o nome do host do console.<br />- Se uma chave de acesso for fornecida quando o console padrão for definido por [xbconnect](/pt-BR/tools/tools-console/commandlinetools/xbconnect), a chave de acesso será armazenada como parte do endereço do console padrão.<br />- Para obter mais informações sobre chaves de acesso, veja [xbconfig accesskey](/pt-BR/tools/tools-console/commandlinetools/xbconfig). |
| /LC | Especifica o código de localidade. Usado para substituir o código de localidade padrão |

### Modos de cópia

Os modos de cópia são mutuamente exclusivos; somente um pode ser especificado para cada operação de cópia. Se nenhum modo de cópia for especificado, a ferramenta verificará se os arquivos foram modificados ou não; somente os arquivos modificados serão considerados para a operação de cópia.

| Opção | Descrição | Suporte a filtros | Suporte a padrões de pesquisa |
| - | - | - | - |
| /list | Enumera ou lista todos os arquivos que serão copiados; funciona como uma prévia da cópia. | Sim | Sim |
| /overwrite | Se selecionado, a ferramenta não verificará se os arquivos foram modificados, portanto todos os arquivos serão substituídos. | Sim | Sim |
| /mirror | Exclui arquivos e diretórios de destino que não existem mais na origem. Se esse modo for especificado, os padrões de pesquisa e as opções de filtro não poderão ser especificados. | Não | Não |

### Opções de filtro

Essas opções permitem que o usuário especifique, por meio de filtros, quais arquivos e diretórios farão parte da cópia. A ferramenta oferece dois tipos de filtros:

* Filtros de comando no shell (/exd, /exf/ /ina e /exa).
* Filtros de arquivo JSON (/rules)

| Opção | Descrição |
| - | - |
| /exf \[<i>file-name</i>] \[…] | Exclui arquivos que correspondem aos nomes ou caminhos especificados. Os caracteres curinga \* e ? têm suporte. Por exemplo: <i>xbcopy src dst /s /exf \*.png \*.data</i> excluirá todos os arquivos com as extensões png e data. |
| /exd \[<i>directory-name</i>] \[…] | Exclui diretórios que correspondem aos nomes e caminhos especificados. Os caracteres curinga \* e ? têm suporte. Por exemplo: <i>xbcopy src dst /s /exd *assets*</i> impedirá que qualquer diretório que contenha a palavra assets no nome seja copiado. |
| /ina:\[R]\[A]\[S]\[H] | Inclui somente os arquivos que tenham qualquer um dos atributos especificados definidos. As opções de inclusão válidas com suporte são <i>R</i> (Somente leitura), <i>A</i> (Arquivo), <i>S</i> (Sistema) e <i>H</i> (Oculto) |
| /exa:\[R]\[A]\[S]\[H] | Exclui os arquivos que tenham qualquer um dos atributos especificados definidos. As opções de exclusão válidas com suporte são <i>R</i> (Somente leitura), <i>A</i> (Arquivo), <i>S</i> (Sistema) e <i>H</i> (Oculto) |
| /rules:\[<i>file\_name</i>] | Especifica um arquivo JSON que oferece recursos de filtragem de inclusão/exclusão de arquivos/diretórios mais poderosos do que os fornecidos pelos parâmetros de comando no shell. Para obter mais informações sobre o formato do arquivo, consulte a seção [Formato do arquivo de regras JSON](#json-rule-file-format). |

### Opções de registro em log

O xbCopy oferece as seguintes opções de registro em log:

| Opção | Descrição |
| - | - |
| /nlh | Não inclui o cabeçalho no registro em log |
| /nlc | Não inclui os títulos das colunas de arquivos no registro em log |
| /nlsi | Não inclui o tamanho do arquivo no registro em log |
| /nlst | Não inclui o status da cópia do arquivo no registro em log |
| /nlsu | Não inclui o resumo no registro em log |
| /nlp | Não inclui o progresso da cópia no registro em log |
| /nlf | Não inclui os nomes dos arquivos no registro em log |

### Formato do arquivo de regras JSON

Esse arquivo é composto por duas matrizes de objetos de regra JSON. Você pode especificar uma ou ambas, dependendo das suas necessidades.
Uma matriz contém as regras que especificam quais arquivos ou diretórios serão excluídos da operação de cópia, enquanto a outra matriz contém as regras que especificam quais arquivos ou diretórios serão incluídos.

Aspectos a considerar:

* Um arquivo ou diretório a ser excluído ou incluído deve corresponder a pelo menos uma das regras de cada matriz, respectivamente.
* Se um determinado diretório for excluído, todos os seus subdiretórios também serão excluídos.
* Se nenhuma regra de inclusão for especificada, todos os arquivos e diretórios farão parte da cópia, a menos que correspondam a uma das regras de exclusão.
* As regras de exclusão têm precedência; portanto, se um arquivo ou diretório corresponder a uma regra de inclusão e a uma de exclusão, ele será excluído.
* Dentro de uma matriz, as regras são aplicadas em ordem. Isso significa que as regras definidas primeiro na matriz são as verificadas primeiro.

Veja abaixo o formato geral da sintaxe do arquivo de regras JSON:

```
{
        "ExcludeRules" : [rule_1, rule_2, rule_3, …, rule_N],
        "IncludeRules"  : [rule_1, rule_2, rule_3, …, rule_N]
}
```

#### Formato da regra

Os objetos de regra são compostos por pelo menos dois atributos, um padrão de pesquisa (curinga ou regex) e ApplyTo. O atributo Path é opcional. Veja abaixo uma descrição de cada um dos atributos.

| Atributo | Descrição | Obrigatório (veja as observações) |
| - | - | - |
| "Wildcard" | Especifica um padrão de pesquisa com caracteres curinga ao qual um arquivo ou diretório deve corresponder para ser considerado incluído ou excluído, dependendo de onde a regra for colocada. Somente \* e ? têm suporte como parte do padrão de pesquisa com caracteres curinga. | Sim |
| "Regex" | Especifica um padrão de pesquisa regex ao qual um arquivo ou diretório deve corresponder para ser considerado incluído ou excluído, dependendo de onde a regra for colocada. | Sim |
| "ApplyTo" | Especifica o escopo da regra, ou seja, se a regra será aplicada somente a arquivos, somente a diretórios ou a ambos. Os valores válidos são "File", "Directory" ou "Both" | Sim |
| "Path" | Especifica sobre o que o padrão de pesquisa será aplicado: o caminho completo, o caminho relativo ou apenas o nome. Se esse parâmetro não for fornecido, será considerado o caminho completo. Os valores válidos são "Full", "Relative" ou "Name" | Não |

> Observação: os atributos Wildcard e Regex não podem ser usados simultaneamente na mesma regra; você pode especificar apenas um de cada vez por regra. Tenha cuidado ao definir e posicionar a regra, especialmente se houver sobreposição entre elas.

### Exemplos de arquivo de regras JSON

#### Exemplo 1: um formato de arquivo de regras para excluir arquivos e diretórios.

O arquivo abaixo:

* Exclui arquivos com as extensões .xml e .exe
* Exclui qualquer diretório cujo nome seja igual a "assets"

```
{
        "ExcludeRules" : 
        [
                {
                        "Wildcard" : "*.xml",
                        "ApplyTo"  : "File"
                },
                {
                        "Wildcard" : "assets",
                        "ApplyTo"  : "Directory", 
                        "Path"        : "Name"
                },
                {
                        "Regex"      : "^.*\\.exe$",
                        "ApplyTo"  : "File",
                        "Path"        : "Name"
                }
        ],

        "IncludeRules" : []
}
```

#### Exemplo 2: um formato de arquivo de regras para especificar quais arquivos e diretórios devem ser copiados.

Esse formato de arquivo de regras copiará somente os arquivos com as extensões .exe e .data

```
{
        "ExcludeRules" : [],
        "IncludeRules" : 
        [
                {
                        "Wildcard" : "*.exe",
                        "ApplyTo"  : "File"
                },
                {
                        "Wildcard" : "*.data",
                        "ApplyTo"  : "File"
                }
        ]
}
```

### Exemplos do xbCopy

| Exemplo | Descrição |
| - | - |
| xbcopy c:\mysource xD:\Some\RemoteFolder \*.png /s | Um único padrão de pesquisa e todos os subdiretórios |
| xbcopy c:\mysource xD:\Some\RemoteFolder \*.png /s:2 | Um único padrão de pesquisa e dois níveis de subdiretórios |
| xbcopy c:\mysource xD:\Some\RemoteFolder \*.png \*.txt \*.log /s | Vários padrões de pesquisa |
| xbcopy c:\mysource xD:\Some\RemoteFolder /exd *data* | Um único diretório excluído |
| xbcopy c:\mysource xD:\Some\RemoteFolder /s /exd *data* *bin* | Vários diretórios excluídos |
| xbcopy c:\mysource xD:\Some\RemoteFolder /s /exf \*.xml | Um único filtro de exclusão de arquivos |
| xbcopy c:\mysource xD:\Some\RemoteFolder /s /exf specific\_file.ext \*.mp? | Vários arquivos excluídos |
| xbcopy c:\mysource xD:\Some\RemoteFolder /s /rules:filter.json | Aplicar filtro usando um arquivo de regras JSON |
| xbcopy c:\mysource xD:\Some\RemoteFolder /s /rules:filter.json /list | Aplicar o modo de cópia list para visualizar a cópia |

<a id="ID4EJE" />

## Veja também

[Ferramentas de linha de comando](/pt-BR/tools/tools-console/commandlinetools/commandlinetools)

[Cópia de arquivos](/pt-BR/tools/tools-console/commandlinetools/xbcp)

[Erros de transporte do XTF](/pt-BR/tools/tools-console/commandlinetools/xtf-transport-errors)


## Related topics

- [Ferramentas de linha de comando para desenvolvimento em console](/pt-BR/tools/tools-console/commandlinetools/commandlinetools.md)
- [Ferramentas de linha de comando](/pt-BR/tools/tools-console/commandlinetools/index.md)
- [Glossário de termos e siglas do GDK](/pt-BR/home/glossary.md)
- [xbWatson](/pt-BR/tools/tools-console/xbWatson/xbwatson.md)
- [Atualizar hosts (XbUpdateHosts.exe)](/pt-BR/tools/tools-console/commandlinetools/xbupdatehosts.md)
