Skip to content

Instantly share code, notes, and snippets.

@wincmd64
Last active April 24, 2025 10:33
Show Gist options
  • Save wincmd64/bf2d84fbcc847b8db701bb8d9ed06dfc to your computer and use it in GitHub Desktop.
Save wincmd64/bf2d84fbcc847b8db701bb8d9ed06dfc to your computer and use it in GitHub Desktop.
:: ПАКЕТНАЯ КОНВЕРТАЦИЯ ВИДЕОФАЙЛОВ С ПОМОЩЬЮ ПРЕСЕТОВ HANDBRAKE
:: by https://t.me/wincmd64
:: ИСПОЛЬЗОВАНИЕ:
:: 1. создать ярлык на этот .bat-файл в папке Shell:SendTo (либо кнопкой в TotalCmd с параметром %P%S)
:: 2. выделить нужные видеофайлы и выбрать в контекстном меню пункт Отправить > *имя_ярлыка*
:: 3. ввести нужное название пресета из https://handbrake.fr/docs/en/1.9.0/technical/official-presets.html
:: HandBrakeCLI.exe должен быть в %PATH% (winget install HandBrake.HandBrake.CLI)
:: либо рядом с .bat (https://handbrake.fr/downloads2.php)
@echo off
:: get HandBrakeCLI path
for /f "tokens=* delims=" %%a in ('where HandBrakeCLI.exe 2^>nul') do set "app=%%a"
if not exist "%app%" (color 4 & echo. & echo HandBrakeCLI not found. Try: winget install HandBrake.HandBrake.CLI & echo. & pause & exit) else (TITLE %app%)
:: checking the number of selected files
set count=0
for %%A in (%*) do set /a count+=1
if %count% equ 1 (echo 1 file selected: %*) else (echo %count% files selected)
SET /p preset=Enter HandBrake preset name or press Enter for default preset (Fast 1080p30):
if "%preset%"=="" (
SET preset=Fast 1080p30
)
TITLE %preset%
FOR %%k IN (%*) DO (
echo.
echo FILE: %%k [%%~tk]
"%app%" -v0 -Z "%preset%" -E copy -i "%%~k" -o "%%~dpnk_%preset%.mp4"
FOR /f "tokens=1-5 delims=.-/: " %%m IN ("%%~tk") DO (
powershell "Get-ChildItem '%%~dpnk_%preset%.mp4' | ForEach-Object{$_.CreationTime = $_.LastWriteTime = $_.LastAccessTime = New-Object DateTime %%o,%%n,%%m,%%p,%%q,00}"
)
)
color 27 & timeout 2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment