Сортировка файлов по папкам PowerShell

Как работает?

Определяет год и месяц по первым 7 символам имени (ГГГГ-ММ).
Создаёт папки по структуре ГОД\МЕСЯЦ (например, 2023\05).
Перемещает файлы в соответствующую папку.

				
					$path = "C:\Путь\к\файлам" # Укажи путь к файлам
# Получаем список файлов
$files = Get-ChildItem -Path $path -File
foreach ($file in $files) {
    # Проверяем, что имя начинается с ГГГГ-ММ
    if ($file.Name -match "^(\d{4})-(\d{2})") {
        $year = $matches[1]   # Год, например 2023
        $month = $matches[2]  # Месяц, например 05
        # Формируем путь ГОД\МЕСЯЦ
        $folderPath = Join-Path $path "$year\$month"
        # Создаём папку, если её нет
        if (!(Test-Path $folderPath)) {
            New-Item -ItemType Directory -Path $folderPath -Force | Out-Null
        }
        # Перемещаем файл
        Move-Item -Path $file.FullName -Destination $folderPath
    }
}

				
			

Как запустить скрипт

  1. Скопируй код в Блокнот и сохрани как sort_photos.ps1.

  2. Убедись, что папка с файлами находится в C:\Путь\к\файлам или измени путь в скрипте.

  3. Открыть PowerShell и запустить команду:

				
					powershell -ExecutionPolicy Bypass -File "C:\Путь\к\файлам\sort_photos.ps1"