Вам нужно взять команду FOR и обработать вывод команды DIR. Вам, вероятно, придется вложить две команды FOR, чтобы получить отдельные числа даты.
Предлагаемая команда DIR для использования:
dir c:\ /TC /A-D
ПРЕДЛАГАЕМОЕ ЗА команду:
FOR /F " TOKENS=1,5 delims= " %A IN ('dir c:\ /TC /A-D') DO @ECHO A-%A B-%B
Это должно дать вам в основном то, что вам нужно, чтобы заставить это работать. Проблема в том, что CMD ужасен при такой работе. Хотя вы можете это сделать, я бы порекомендовал вам использовать более продвинутый язык, такой как powershell. Это бесплатно для Windows, и Quest Software делает отличный графический редактор под названием PowerGUI.
Вот что я написал в Powershell, чтобы сделать это. Мне намного легче следовать.
#Get files in C:\temp and filter out directories
$tarfol = "C:\temp" #Target Folder
$var = Get-ChildItem $tarfol | Where-Object {$_.mode -inotmatch "d"}
#Process Files
foreach($item in $var)
{
#Build New Folder Path
$folder = "$tarfol\$item.CreationTime.Year\$item.CreationTime.Month\$item.CreationTime.Day"
#Test for for folder
if(!(Test-Path $folder)) {
#Create folder
New-Item -Path C:\temp\$y\$m\$d -ItemType directory
}
#Move item
Move-Item -Path $item.FullName -Destination "$folder"
}
Надеюсь это поможет.