Check file date and time and keep the most current in Batch

1

I need a program in Batch where I will specify two files, it will compare the date and time of the creation of the same and if the first one is more current it would delete the second and copy the first, otherwise it will not do anything .

    
asked by anonymous 16.06.2017 / 22:46

1 answer

1

This command does not delete, but only copies and overwrites if the source file is newer than the destination file.

You should put the full path of the files to work correctly.

The copy causes the destination file to be replaced by the source file, if the file name is different and the source file is newer, the copy will be made, but the name will continue to be the one of the destination file.

@echo off

set /p file1=Digite o caminho e nome do arquivo 1: 

set /p file2=Digite o caminho e nome do arquivo 2: 

xcopy "%file1%" "%file2%" /y /d

pause

If you want to copy only the latest files from a certain folder, just do the following:

xcopy "C:\PastaOrigem\." "C:\PastaDestino" /y /d

Understand more about xcopy:

Copia arquivos e árvores de diretórios.

XCOPY origem [destino] [/A | /M] [/D[:data]] [/P] [/S [/E]] [/V] [/W]
                           [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
                           [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B] [/J]
                          [/EXCLUDE:arquivo1[+arquivo2][+arquivo3]...]

  origem       Especifica o(s) arquivo(s) a ser(em) copiado(s).
  destino  Especifica o local e/ou o nome dos novos arquivos.
  /A           Copia somente arquivos com o atributo de arquivamento
               definido; nao altera o atributo.
  /M           Copia somente arquivos com o atributo de arquivamento
               definido; desativa o atributo de arquivamento.
  /D:m-d-a     Copia os arquivos alterados durante ou após a data
               especificada. Se nao for definida uma data, copia apenas os
               arquivos cujo tempo de origem seja mais novo do que o tempo
               de destino.
  /EXCLUDE:arquivo1[+arquivo2][+arquivo3]...
               Especifica uma lista de arquivos contendo cadeias de
               caracteres. Cada cadeia deve estar em uma linha separada nos
               arquivos. Quando qualquer cadeia corresponder a qualquer parte
               do caminho absoluto do arquivo a ser copiado, esse arquivo
               deixará de ser copiado. Por exemplo, especificar uma cadeia de
               caracteres como \obj\ ou .obj excluirá todos os arquivos sob o
               diretório obj ou com a extensao .obj, respectivamente.
  /P           Solicita confirmaçao antes de criar cada arquivo de destino.
  /S           Copia diretórios e subdiretórios, exceto os vazios.
  /E           Copia diretórios e subdiretórios, inclusive os vazios.
               O mesmo que /S /E. Pode ser usado para modificar /T.
  /V           Verifica o tamanho de cada novo arquivo.
  /W           Solicita que você pressione uma tecla antes de copiar.
  /C           Continua copiando, mesmo que ocorram erros.
  /I           Se o destino nao existir e mais de um arquivo estiver sendo
               copiado, pressupoe que o destino deve ser um diretório.
  /Q           Nao exibe os nomes de arquivos ao copiar.
  /F           Exibe os nomes de arquivos de origem e de destino completos ao
               copiar.
  /L           Exibe arquivos que seriam copiados.
  /G           Permite a cópia de arquivos criptografados para um destino que
               nao oferece suporte a criptografia.
  /H           Copia arquivos ocultos e do sistema também.
  /R           Substitui arquivos somente leitura.
  /T           Cria a estrutura de diretórios, mas nao copia arquivos. Nao
               inclui diretórios ou subdiretórios vazios. /T /E inclui
               diretórios e subdiretórios vazios.
  /U           Copia apenas os arquivos que já existem no destino.
  /K           Copia atributos. O Xcopy normal redefinirá os atributos
               somente leitura.
  /N           Copia usando os nomes curtos gerados.
  /O           Copia as informaçoes de ACL e proprietário do arquivo.
  /X           Copia configuraçoes de auditoria de arquivo (implica /O).
  /Y           Suprime o prompt para você confirmar se deseja substituir
               um arquivo de destino existente.
  /-Y          Exibe o prompt para você confirmar se deseja substituir
               um arquivo de destino existente.
  /Z           Copia arquivos de rede no modo reiniciável.
  /B           Copia o próprio Vínculo Simbólico, e nao o destino do vínculo.
  /J           Copia usando E/S sem buffer. Recomendável para arquivos muito
               grandes.

A opçao /Y pode ser predefinida na variável de ambiente COPYCMD.
Isso pode ser anulado por /-Y na linha de comando.
    
17.06.2017 / 00:11