Как стать автором
Обновить

Как легко и просто удалить ненужные видеофайлы, если их скопилось много

Привет, коллеги, это моя первая статья на хабре, просьба отнестись с пониманием.

Допустим, у Вас на компьютере скопилось большое количество видеофайлов, и Вы хотите навести порядок, то есть удалить ненужные. Самое очевидное решение не является самым удобным — открыть папку и ориентироваться на названия. Это не всегда работает, например, в случае серий с сериалами, когда хочется что-то удалить, что-то оставить. Придётся открывать каждый файл, и только после закрытия видеоплеера удалять. Неудобно.

Тут на помощь приходит смекалка и PowerShell, извиняюсь перед всеми пользователями Linux… хотя на Linux безусловно тоже можно будет придумать нечто подобное.

Основная идея заключается в следующем — открываем файл в видеоплеере, и если его нужно удалить, запускаем bat-файл, который удаляет предыдущий открытый файл, и помечает на удаление текущий открытый файл. Под помечанием на удаление имеется ввиду запись полного пути текущего файла в текстовый файл. Сразу открытый файл удалить нельзя, так как он занят видеоплеером, и не всегда на чтение.

Пункт 1

Установить Media Pleer Classic, например отсюда

Пункт 2

В настройках установить отображение полного пути проигрываемого файла, пункт меню «Проигрыватель -> В заголовке отображать -> Полный путь». Скриншот настройки.

Пункт 3

Разрешить выполнение PowerShell скриптов. Не думаю, что это будет большой проблемой, речь наверное всё-таки о персональных ПК, не о серверах.

Команда, разрешающая безусловное выполнение всех PowerShell-скриптов — «Set-ExecutionPolicy Unrestricted». Открываем консоль PowerShell под правами администратора, вводим эту команду. Подробнее например здесь.

Думаю, есть более безопасный способ, который позволит выполнять не все ps1-файлы, а только определённый, но я так глубоко не копал. Кто знает, буду благодарен за комментарий к публикации.

Пункт 4

Вот сам PowerShell-скрипт:

$df = 'C:\Temp\delete.txt'
if (Test-Path $df)
{
$delfile = Get-Content $df
Add-Type -AssemblyName Microsoft.VisualBasic
[Microsoft.VisualBasic.FileIO.FileSystem]::DeleteFile($delfile,'OnlyErrorDialogs','SendToRecycleBin')
}
$mpc = Get-Process mpc-hc64
$title = $mpc.MainWindowTitle
Set-Content -Value $title -Path $df

Он делает следующее:

  1. Удаляет в корзину файл, записанный первой строкой текстового файла C:\Temp\delete.txt
  2. Перезаписывает в C:\Temp\delete.txt заголовок окна процесса mpc-hc64, то есть нашего видеоплеера из пункта 1

Пункт 5

Создать bat-файл со следующей командой:

powershell -file C:\Temp\deletevideo.ps1

где файл ps1 это наш скрипт

Пункт 6, но это кому как удобно

Вывести нажатие bat-файла на панель задач, у меня например так

Итог

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

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