我有一个简单的批处理脚本,它将某个目录中的最新文件复制到另一个位置。我希望此脚本还忽略所有小于 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 定义最小大小(以字节为单位)。