Xcopy
Copia arquivos e pastas, inclusive subpastas.
Sintaxe
xcopy origem [destino] Liste cada sequência em uma linha separada em cada arquivo. Se alguma das sequências listadas corresponder a uma parte do caminho absoluto do arquivo a ser copiado, esse arquivo será excluído do processo de cópia. Por exemplo, se especificar a sequência "\Obj\", você excluirá todos os arquivos na pasta Obj. Se especificar a sequência ".obj", você excluirá todos os arquivos com a extensão .obj.
Se a conexão for perdida durante a fase de cópia (por exemplo, se o servidor da conexão ficar off-line), ela será reiniciada após a conexão ter sido restabelecida. /z também exibe a porcentagem da operação de cópia concluída de cada arquivo.
É possível usar /y na variável de ambiente COPYCMD. Você pode substituir esse comando usando /-y na linha de comando. Por padrão, você é solicitado a efetuar a substituição, a menos que execute copy a partir de um script em lotes.
A cópia de arquivos criptografados para um volume que não dê suporte a EFS resulta em um erro. Descriptografe os arquivos primeiro ou copie-os para um volume que dê suporte a EFS.
Para acrescentar arquivos, especifique um único arquivo para o destino, mas vários arquivos para a origem (isto é, usando curingas ou o formato arquivo1+arquivo2+arquivo3).
Se o destino for omitido, o comando xcopy copiará os arquivos para a pasta atual.
Se o destino não contiver uma pasta e não terminar com uma barra invertida (\), a seguinte mensagem será mostrada:
Pressione A para que o(s) arquivo(s) seja(m) copiado(s) para um arquivo. Pressione P para que o(s) arquivo(s) seja(m) copiado(s) para uma pasta.
É possível eliminar essa mensagem usando a opção de linha de comando /i, o que fará com que xcopy pressuponha que o destino é uma pasta se a origem for mais de um arquivo ou uma pasta.
O comando xcopy cria arquivos com o atributo de arquivamento definido, quer esse atributo tenha sido definido no arquivo de origem ou não. Para obter mais informações sobre atributos de arquivo e attrib, consulte Tópicos relacionados.
Se você tiver um disco que contenha arquivos em subpastas e desejar copiá-lo para um disco cujo formato seja diferente, utilize o comando xcopy em vez de diskcopy. Como o comando diskcopy copia discos trilha por trilha, é necessário que os discos de origem e de destino tenham o mesmo formato. O comando xcopy não faz essa exigência. Utilize xcopy, a não ser que precise de uma cópia de imagem completa do disco.
Para processar códigos de saída retornados por xcopy, use o parâmetro errorlevel na linha de comando if de um programa em lotes. Para obter um exemplo de um programa em lotes que processe códigos de saída usando if, consulte Tópicos relacionados. A tabela a seguir lista cada código de saída e uma descrição.
Para copiar todos os arquivos e subpastas (inclusive qualquer subpasta vazia) da unidade A para a unidade B, digite:
xcopy a: b: /s /e
Para incluir qualquer arquivo de sistema ou oculto no exemplo anterior, adicione a opção de linha de comando /h da seguinte forma:
xcopy a: b: /s /e /h
Para atualizar arquivos na pasta \Relats utilizando os arquivos da pasta \Dados que foram alterados desde 29 de dezembro de 1993, digite:
xcopy \dados \relats /d:29-12-1993
Para atualizar todos os arquivos que existem em \Relats no exemplo anterior, independentemente da data, digite:
xcopy \dados \relats /u
Para obter uma lista dos arquivos a serem copiados pelo comando anterior (isto é, sem realmente copiar os arquivos), digite:
xcopy \dados \relats /d:29-12-1993 /l > xcopy.out
O arquivo Xcopy.out lista cada arquivo que será copiado.
Para copiar a pasta \Cliente e todas as subpastas para a pasta \\Público\Endereço na unidade de rede H:, manter o atributo somente leitura e ser avisado de que um novo arquivo foi criado na unidade H:, digite:
xcopy \cliente h:\público\endereço /s /e /k /p
Para emitir o comando anterior, certifique-se de que xcopy cria a pasta \Endereço se ela não existir, suprima a mensagem que é mostrada quando uma nova pasta é criada e adicione a opção de linha de comando /i da seguinte forma:
xcopy \cliente h:\público\endereço /s /e /k /p /i
Você pode criar um programa em lotes para executar as operações de xcopy e utilizar o comando if em lotes para processar o código de saída se houver erros. Por exemplo, o programa em lotes a seguir utiliza parâmetros substituíveis para os parâmetros de origem e destino de xcopy:
rem unidade ou pasta (%2)
Para utilizar este programa em lotes a fim de copiar todos os arquivos da pasta C:\Codprgm e subpastas para a unidade B, digite:
copia c:\codprgm b:
O interpretador de comandos substitui %1 por C:\Codprgm e %2 por B: e utiliza xcopy com as opções de linha de comando /e e /s. Se xcopy encontrar um erro, o programa em lotes lerá o código de saída, irá para o rótulo indicado na instrução IF ERRORLEVEL correta, exibirá a mensagem apropriada e sairá desse programa.XOXParâmetros
Pressione qualquer tecla para iniciar a cópia de arquivo(s)
Comentários
O destino especifica um nome de arquivo
ou pasta no destino
(A = arquivo, P = pasta)?
Código de saída
Descrição
0
Os arquivos foram copiados corretamente.
1
Não foram encontrados arquivos para copiar.
2
O usuário pressionou CTRL+C
para finalizar xcopy.
4
Ocorreu um erro de inicialização. Memória ou espaço em disco insuficiente, ou você digitou um nome de unidade inválido ou uma sintaxe inválida na linha de comando.
5
Ocorreu erro de gravação em disco. Exemplos
@echo off
rem COPIA.BAT transfere todos os arquivos de todas as subpastas da
rem unidade ou pasta (%1) de origem para o destino
xcopy %1 %2 /s /e
if errorlevel 4 goto lowmemory
if errorlevel 2 goto abort
if errorlevel 0 goto exit
:lowmemory
echo Memória insuficiente para copiar arquivos ou
echo sintaxe de linha de comando ou unidade inválida.
goto exit
:abort
echo Você pressionou CTRL+C
para finalizar a operação de cópia.
goto exit
:exit