Скрипт на PowerShell сортирующий файлы по папкам

Мой друг помог написать мне скрипты, которые раскидывают файлы по папкам по времени их изменения. Они были сделаны один за другим и являются по сути развитием от простого к менее простому. Вдруг кому понадобится.

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}
}
}