Как работает?
Определяет год и месяц по первым 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
}
}
Как запустить скрипт
Скопируй код в Блокнот и сохрани как
sort_photos.ps1.Убедись, что папка с файлами находится в C:\Путь\к\файлам или измени путь в скрипте.
Открыть PowerShell и запустить команду:
powershell -ExecutionPolicy Bypass -File "C:\Путь\к\файлам\sort_photos.ps1"