Batch - como copiar o arquivo por tamanho mínimo e modificação de data?

2

Eu tenho este script em lote simples que copia o arquivo mais novo em algum diretório para outro lugar. Eu quero que este script também ignore todos os arquivos (na seção de comando DIR) abaixo de 1GB de tamanho.

FOR /F "delims=|" %%I IN ('DIR "Y:\DEVL\*.*" /B /A-D') DO SET NewestFile=%%I 

copy "Y:\DEVL\%NewestFile%" "F:\DEVL\%NewestFile%"

Qualquer ajuda seria muito apreciada.

    
por Yoffe 26.02.2013 / 08:45

1 resposta

2

Opção 1: Se você deseja copiar o arquivo mais recente, mas somente se ele for maior que 1 GB, basta substituir o comando de cópia por:

robocopy "Y:\DEVL" "F:\DEVL\" "%NewestFile%" /min:1073741824

/ min: n define o tamanho mínimo em bytes.

Opção 2: Se você deseja copiar o arquivo mais recente de todos os arquivos com mais de 1 GB, é mais complicado.

@echo off

Set CopyResult=0
FOR /F "delims=|" %%I IN ('DIR "Y:\DEVL\*.*" /B /O:-d /T:w /A-D') DO Call :DoCopy "%%I"
Goto :EOF

:DoCopy
  IF %CopyResult%==1 Goto :EOF
  set CurrentFile=%1
  robocopy "Y:\DEVL" "F:\DEVL" %CurrentFile% /njs /njh /is /min:107374182
  Set CopyResult=%errorlevel%

/ min: n define o tamanho mínimo em bytes.

    
por 27.02.2013 / 14:40