批量-如何按最小大小和修改日期复制文件?

批量-如何按最小大小和修改日期复制文件?

我有一个简单的批处理脚本,它将某个目录中的最新文件复制到另一个位置。我希望此脚本还忽略所有小于 1GB 的文件(在 DIR 命令部分中)。

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

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

任何帮助都将非常感激。

答案1

选项1:如果您想要复制最新文件,但前提是文件大于 1GB,只需将您的复制命令替换为:

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

/min:n 定义最小大小(以字节为单位)。

选项 2:如果要复制所有大于 1GB 的文件中的最新文件,则会更加复杂。

@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 定义最小大小(以字节为单位)。

相关内容