自分を傷つけずにバッチでこれを行うことはできないと思います。ひどく。
接続されていないレコードセットで VBScript を使用する方が適切な場合があります。
Const adBigInt = 20
Const adDate = 7
Const adVarChar = 200
Const SizeThreshold = 52428800 'Byte
Const SizeLimit = 10485760 'Byte
Set fso = CreateObject("Scripting.FileSystemObject")
Set rs = CreateObject("ADOR.Recordset")
rs.Fields.Append "path", adVarChar, 255
rs.Fields.Append "date", adDate
rs.Fields.Append "size", adBigInt
rs.Open
totalSize = 0
For Each f In fso.GetFolder("C:\Temp").Files
rs.AddNew
rs("path") = f.Path
rs("date") = f.DateLastModified
rs("size") = f.Size
rs.Update
totalSize = totalSize + f.Size
Next
If totalSize > SizeThreshold Then
rs.Sort = "date ASC, size ASC"
rs.MoveFirst
Do Until rs.EOF Or totalSize < SizeLimit
rs.MoveFirst
fso.DeleteFile rs("path")
totalSize = totalSize - CLng(rs("size"))
rs.Delete
Loop
End If
rs.Close