Try PowerShell with Get-ChildItem: Here's a basic example and this should be more versatile, easier to customize :
$sourceDir = "C:\YourSourceFolder"
$destDir = "C:\YourDestinationFolder"
$startDate = "2024-02-01"
$endDate = "2024-02-25"
Get-ChildItem -Path $sourceDir -Recurse -Filter "*.*" | Where-Object { $_.LastWriteTime -ge $startDate -and $_.LastWriteTime -le $endDate } | ForEach-Object { Copy-Item -Path $_.FullName -Destination $destDir -Recurse -IncludeSubdirectories }
# Explanation:
# Get-ChildItem: Lists files and folders
# -Path: Specifies the source directory
# -Recurse: Includes subfolders
# -Filter: Filters files by name
# Where-Object: Filters files by date range
# Copy-Item: Copies files to the destination
# -Path: Specifies the source file
# -Destination: Specifies the destination directory
# -Recurse: Includes subfolders
# -IncludeSubdirectories: Copies empty subfolders
Also , There are some copy tools that have user-friendly interfaces, additional features and meets your requirements , Consider tools like FreeFileSync, Gs Richcopy 360 , SyncBack, or Beyond Compare.