Search
Write a publication
Pull to refresh

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

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

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

Тут на помощь приходит смекалка и 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-файла на панель задач, у меня например так

Итог

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

Надеюсь, идея Вам зашла.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.