PowerShell: разгребаем папки загрузок и прочий хлам.

Ну красавчик же
Ну красавчик же

Смотри сюда!

Вам понравился мой прошлый пост про PowerShell, где мы скачивали видео с ТыТруба. Сегодня я продолжу пугать юзеров командной строкой, бессмысленно и беспощадно, но полезно.

А что делаем-то? Смотри, иногда нам нужно рассортировать по папкам файлы из загрузок, windows.old и прочих каталогов брошенных на произвол судьбы. Лично я нередко забиваю буй на каталогизацию всего, что попадает на хард, поэтому случаются заваленные рабочие столы и т.д. Если уж данный инструмент был полезен мне, то еще несколько человек найдется.

Приступим

Да братан, открывай PowerShell, сделать это можно через поиск, после нажатия на клавишу WIN (победа).

Настройка профиля

Для начала настроим или создадим профиль, чтобы наши команды-элиасы работали после каждого запуска системы.

  • Проверяем путь к профилю:
$PROFILE

Пример результата:

C:\Users\Собака\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
  • Если файла нет — создаём:
if (!(Test-Path $PROFILE)) { New-Item -Path $PROFILE -ItemType File -Force }

Кидаем скрипты в профиль

  • Открываем собственно сам файл
notepad $PROFILE
  • Добавляем функцию для сортировки файлов по суб-директориям по расширению файлов
function Sort-ByExtension { Get-ChildItem | ForEach-Object { if ($_.PSIsContainer) { $ext = "folder" } else { $ext = $_.Extension.TrimStart('.') if ($ext -eq '') { $ext = '_noext' } } $folder = Join-Path $PWD $ext if (!(Test-Path $folder)) { New-Item -ItemType Directory $folder | Out-Null } Move-Item $_.FullName $folder } } Set-Alias sortext Sort-ByExtension
  • Добавляем функцию для распаковки файлов из всех подпапок
function Unpack-All { # Перемещаем все файлы из подпапок в текущую директорию Get-ChildItem -Recurse -File | Move-Item -Destination . -Force # Удаляем пустые папки Get-ChildItem -Recurse -Directory | Where-Object { -Not (Get-ChildItem $_.FullName) } | Remove-Item -Force } Set-Alias ua Unpack-All

Смотрим что получилось

Вай
Вай

СОХРАНИСЬ!

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

Для начала видео демонстрация

Просто и со вкусом

Сортируем

  • Переходим в нужный нам каталог для сортировки. Путь можно забрать из проводника правой кнопкой мыши, или написать ручками.
Пример cd C:\Donwloads\TG_Downloads
  • Для того чтобы раскидать все файлы по каталогам пишем элиас "sortext"
sortext

Что делает:

  • Папки в folder/
  • Файлы без расширения в _noext/
  • Остальное по расширению (mp4/, png/ и т.д.)

Сортируем, но наоборот

  • Теперь создадим хаос с помощью элиаса "ua"
ua

Что делает:

  • Достаёт все файлы из всех подпапок
  • Перемещает их в текущий каталог
  • Удаляет пустые подпапки

Всё, ты бог!

Эво как

Таким образом, мне удалось разгрести несколько хардов на работе, не потеряв важные данные и кучу времени на ковыряние в проводнике или еще каком-нибудь коммандере. Всё это дело можно улучшить, достаточно напрячь языковую модель, которую ты используешь.

Максвелл всему голова

А еще вы конечно же можете не подписывать на мой блог, на мой ТГ, на мой YouTube, не донатить на сиги и всё в таком духе. Надеюсь вы узнали что-то новое. Любите котов, чешите пингвинов!

3
1 комментарий