Batch File - Copiando os dois arquivos mais recentes de uma pasta para outra

0

Sou muito novo em escrever arquivos em lote e não consigo obter os dois arquivos mais recentes de uma pasta para copiar em outra pasta. Eu tenho novas pastas criadas automaticamente todos os dias e quero que elas sejam movidas automaticamente para o lugar oposto, em vez de ter que movê-las manualmente todos os dias. Consegui que a pasta mais recente se movesse, mas sempre que tentava alguma coisa para obter a segunda, não tive sorte. Qualquer conselho seria apreciado

    
por Buzz 21.07.2017 / 20:42

1 resposta

0

  • Classifique os arquivos para trás com Dir /B /O-D /A-D
  • Numere os arquivos com findstr /n
  • Se o número for menor ou igual a Xnewest - mova
@Echo off
Set "Xnewest=2"
For /F "tokens=1* delims=:" %%A in (
  'Dir /B /A-D /O-D ^| Findstr /N "^"'
) Do If %%A Leq %Xnewest% echo Move "%%B" "X:\Path\to\dest\"

Se a saída parece OK, remova o eco na última linha.

Exemplo de saída:

> dir /A-D/O-D
 Directory of A:\
07/21/2017  23:19               315 SU_1232190.cmd
07/21/2017  14:58               778 SO_45225802.cmd
07/19/2017  10:51               158 PassMinMax.cmd
07/19/2017  00:50                37 WhoStartedMe.cmd
07/18/2017  01:32             1.222 SO_45137227.cmd
               5 File(s)          2.510 bytes
               0 Dir(s)   1.049.776.128 bytes free
> SU_1232190.cmd
Move "SU_1232190.cmd" "X:\Past\to\dest\"
Move "SO_45225802.cmd" "X:\Past\to\dest\"
    
por 21.07.2017 / 23:26