Мой друг помог написать мне скрипты, которые раскидывают файлы по папкам по времени их изменения. Они были сделаны один за другим и являются по сути развитием от простого к менее простому. Вдруг кому понадобится.
1 скрипт – просто раскидывает все файлы из первого пути по папкам во второй путь. Можно поменять Move-Item на Copy-Item, и тогда скрипт будет не перемещать файлы, а копировать.
Get-ChildItem -File “C:\Files\” | Move-Item -Destination { md (“C:\Files\” + $_.LastWriteTime.ToString(“yyyy.MM.dd”)) -Force}
2 скрипт делает то же самое , но игнорирует файлы измененные в последние 7 дней (можно поменять количество дней в начале скрипта заменив -7 на нужное количество дней.)
$lastweek = (get-date).AddDays(-7)
$files= Get-ChildItem -File “C:\Files\”
foreach ($file in $files) {
if ($file.lastwritetime -lt $lastweek) {
$file | Move-Item -Destination { md (“C:\Files\” + $_.LastWriteTime.ToString(“yyyy.MM.dd”)) -Force}
}
}
3 скрипт делает папки только с годами-месяцами, а уже внутри них делает папки с днями. А так же игнорирует последние 7 дней.
$lastweek = (get-date).AddDays(-7)
$files= Get-ChildItem -File “C:\Files\”
foreach ($file in $files) {
if ($file.lastwritetime -lt $lastweek) {
$file | Move-Item -Force -Destination { md (“C:\Files\” + $_.LastWriteTime.ToString(“yyyy.MM”) + “\” + $_.LastWriteTime.ToString(“yyyy.MM.dd”)) -Force}
}
}