Чтобы использовать один из уже созданных ответов в PowerShell
<#
File modified by Joshua as taken from
http://www.marcvalk.net/2012/06/powershell-moving-files-into-subfolder-based-on-date/
Set Variables of Source folder and Destination folder
Assign variable of files to be the files with uss extension
For each file with uss extension assign the Directory variable the information for file creation year and month
if the year and month folder do not exist, then create them from file creation information
Move file to sub-folder of year and month from file creation information passed into Directory variable
#>
$SourceDir = "C:\<Pointer>"
$DestinationDir = "C:\<Pointer>"
$files = get-childitem $SourceDir
foreach ($file in $files)
{
$Directory = $DestinationDir + "" + $file.CreationTime.Date.ToString('yyyy') + "\" + $file.CreationTime.Date.ToString('MM-MMM') + "\" + $file.CreationTime.Date.ToString('DD')
if (!(Test-Path $Directory))
{
New-Item $directory -type directory
}
Move-Item $file.fullname $Directory
}
обратите внимание, что вам нужно будет указывать на папку заранее, в основном, когда вы находитесь в типе "cd c: \" с указателем, где папка
Обязательно отредактируйте $SourceDir = "C:\<Pointer>"
и $DestinationDir = "C:\<Pointer>"
при необходимости
Другой вариант это
$Folder = "C:\<pointer>"
get-childitem | % {
$file = $_.FullName
$date = Get-Date ($_.CreationTime)
$hour = $date.Hour
$day = $date.day
$month = $date.month
$year = $date.year
new-item -type Directory -path "$Folder\$year\$month\$day\$hour"
move-item $file "$Folder\$year\$month\$day\$hour"
}
Однако все эти решения требуют, чтобы вы запускали скрипт в тот момент, когда вы хотите регистрировать ваши файлы.