Xcopy

Copia arquivos e pastas, inclusive subpastas.

Sintaxe

xcopy origem [destino[/w[/p[/c[/v[/q[/f[/l[/g[/d[:dd-mm-aaaa]] [/u[/i[/s [/e]] [/t[/k[/r[/h[{/a|/m}] [/n[/o[/x[/exclude:arquivo1[+[arquivo2]][+[arquivo3]] [{/y|/-y}] [/z]

Parâmetros

origem
Obrigatório. Especifica o local e os nomes dos arquivos que você deseja copiar. Este parâmetro precisa incluir uma unidade ou um caminho.
destino
Especifica o destino dos arquivos que você deseja copiar. Este parâmetro pode incluir uma letra de unidade e dois-pontos, um nome de pasta, um nome de arquivo ou uma combinação desses elementos.
/w
Exibe a mensagem a seguir e espera uma resposta antes de iniciar a cópia de arquivos:

Pressione qualquer tecla para iniciar a cópia de arquivo(s)

/p
Solicita que você confirme a criação de cada arquivo de destino.
/c
Ignora os erros.
/v
Verifica cada arquivo à medida que é gravado no arquivo de destino para garantir que os arquivos de destino sejam idênticos aos arquivos de origem.
/q
Elimina a exibição de mensagens do xcopy.
/f
Exibe os nomes de arquivo de origem e de destino durante a cópia.
/l
Exibe uma lista de arquivos que serão copiados.
/g
Cria arquivos de destino descriptografados.
/d[:dd-mm-aaaa]
Copia somente os arquivos de origem alterados na data especificada ou após essa data. Se você não incluir um valor dd-mm-aaaa, xcopy copiará todos os arquivos de origem que forem mais recentes do que os arquivos de destino existentes. Esta opção de linha de comando permite atualizar arquivos que foram alterados.
/u
Copia somente arquivos da origem que existem no destino.
/i
Se origem for uma pasta ou incluir curingas e destino não existir, xcopy pressuporá que destino especifica um nome de pasta e criará uma nova pasta. Em seguida, xcopy copiará todos os arquivos especificados para a nova pasta. Por padrão, xcopy solicita que você especifique se destino é um arquivo ou uma pasta.
/s
Copia pastas e subpastas, a não ser que estejam vazias. Se você omitir /s, xcopy funcionará em uma única pasta.
/e
Copia todas as subpastas, mesmo que estejam vazias. Use /e com as opções de linha de comando /s e /t.
/t
Copia somente a estrutura de subpasta (isto é, a árvore), não arquivos. Para copiar pastas vazias, é necessário incluir a opção de linha de comando /e.
/k
Copia arquivos e mantém o atributo somente leitura nos arquivos de destino, se estiver presente nos arquivos de origem. Por padrão, xcopy remove o atributo somente leitura.
/r
Copia arquivos somente leitura.
/h
Copia arquivos com atributos de arquivo oculto e de sistema. Por padrão, xcopy não copia arquivos ocultos ou de sistema.
/a
Copia somente arquivos de origem que já tenham os atributos de arquivo morto definidos. /a não modifica o atributo de arquivo morto do arquivo de origem. Para obter informações sobre como definir o atributo de arquivo morto usando attrib, consulte Tópicos relacionados.
/m
Copia arquivos de origem que já tenham os atributos de arquivo morto definidos. Ao contrário da opção /a, /m desativa os atributos de arquivo morto nos arquivos especificados na origem. Para obter informações sobre como definir o atributo de arquivo morto usando attrib, consulte Tópicos relacionados.
/n
Cria cópias utilizando nomes curtos de arquivos ou pastas NTFS. A opção /n é obrigatória quando você copia arquivos ou pastas de um volume NTFS para um volume FAT ou quando a convenção de nomes do sistema de arquivos FAT (isto é, caracteres no formato 8.3) é exigida no sistema de arquivos do destino. O sistema de arquivos do destino pode ser FAT ou NTFS.
/o
Copia informações sobre a propriedade de arquivos e a lista de controle de acessos discricionária (DACL).
/x
Copia configurações de auditoria de arquivos e informações sobre a lista de controle de acessos do sistema (SACL) (/o está implícito).
/exclude:nome_de_arquivo1[+[nome_de_arquivo2]][+[nome_de_arquivo3]]
Especifica uma lista de arquivos que contêm sequências.
/y
Elimina o pedido de confirmação de que você deseja substituir um arquivo de destino existente.
/-y
Solicita a confirmação de que você deseja substituir um arquivo de destino existente.
/z
Copia em uma rede no modo reinicializável.
/?
Exibe ajuda no prompt de comando.

Comentários

Exemplos

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:

@echo off
rem COPIA.BAT transfere todos os arquivos de todas as subpastas da
rem unidade ou pasta (%1) de origem para o destino

rem unidade ou pasta (%2)
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

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