Copie o mais recente de dois arquivos com a linha de comando do Windows

2

Eu tenho um diretório do Windows que contém 4 arquivos no total. Os nomes dos arquivos são os seguintes:

  • Address_1502.csv
  • Address_1602.csv
  • Site_1502.csv
  • Site_1602.csv

O prefixo do nome do arquivo nunca muda, portanto, os arquivos sempre começarão com Address_ ou site_ . Eu estou tentando encontrar um comando que pode copiar o mais recente dos dois arquivos de seu diretório atual para um diretório diferente. Eu tenho atualmente o seguinte script no entanto isso só encontra o mais novo de todos os 4 arquivos e copia sobre ele no entanto eu gostaria de encontrar o mais novo dos dois arquivos Address_ E o mais novo dos dois arquivos Site_.

Alguém pode ajudar em tudo?

set "source=D:\TEMP_ONLY\SOURCE"
set "dest=D:\TEMP_ONLY\DESTINATION"
pushd "%source%" ||(
   echo.Source does not exist&pause&goto EOF)

for /f "tokens=*" %%f in (
   'dir /A-D /OD /B') Do set "file=%%f"
popd
xcopy /d /i "%source%\%file%" "%dest%\"
    
por Peter 24.07.2015 / 14:56

1 resposta

0

Eu gostaria de encontrar o mais novo dos dois arquivos Address_ e o mais novo dos dois arquivos Site_.

Use o seguinte arquivo em lotes:

@echo off
Setlocal EnableDelayedExpansion
set "source=D:\TEMP_ONLY\SOURCE"
set "dest=D:\TEMP_ONLY\DESTINATION"
pushd "%source%" || ( echo.Source does not exist & pause & goto done2)
for /f "delims=" %%a in ('dir Address_*.csv /a-d /b /O:d') do (
  xcopy /d /i "%source%\%%a" "%dest%\"
  goto :done1
  )
:done1   
for /f "delims=" %%a in ('dir Site_*.csv /a-d /b /O:d') do (
  xcopy /d /i "%source%\%%a" "%dest%\"
  goto :done2
  )
:done2
popd

Leitura Adicional

por 24.07.2015 / 15:25