You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改批处理文件以支持拖拽处理视频文件?

修改批处理实现固定路径编码器+拖拽视频编码

需要将批处理与nvencc文件夹固定存放(如D:\Encoder),支持将外部硬盘中的视频拖拽到批处理文件上直接生成代理文件,替代原需将批处理放在视频目录的操作。

修改后的完整批处理代码

@echo off
setlocal enabledelayedexpansion
set t0=%TIME%, %DATE%

:: 固定编码器路径,请根据实际存放位置修改
set "NVEncPath=D:\Encoder\nvencc\NVEncC64.exe"
:: 代理文件保存目录,可自行修改
set "ProxyDir=C:\Users\Mypc\Desktop"

:: 检查编码器是否存在
if not exist "%NVEncPath%" (
    echo 错误:未找到编码器程序 %NVEncPath%
    pause
    exit /b 1
)

:: 处理拖拽传入的所有文件
if "%~1"=="" (
    echo 请将视频文件拖拽到本批处理文件上执行
    pause
    exit /b 1
)

for %%i in (%*) do (
    :: 重置颜色参数变量,避免残留
    set "nvcm="
    :: 检查是否为支持的视频格式
    if /i "%%~xi"==".mp4" goto process_file
    if /i "%%~xi"==".avi" goto process_file
    if /i "%%~xi"==".mov" goto process_file
    if /i "%%~xi"==".wmv" goto process_file
    if /i "%%~xi"==".ts" goto process_file
    if /i "%%~xi"==".m2ts" goto process_file
    if /i "%%~xi"==".mkv" goto process_file
    echo 跳过非视频文件:%%i
    goto next_file

:process_file
    :: 设置非AVI文件的颜色参数
    if /i not "%%~xi"==".avi" set "nvcm=--colorprim auto --transfer auto --colormatrix auto --colorrange auto"
    :: 检查代理文件是否已存在
    if not exist "%ProxyDir%\%%~ni_proxy.mp4" (
        echo 正在处理:%%i
        "%NVEncPath%" -i "%%i" -o "%ProxyDir%\%%~ni_proxy.mp4" --output-res 960x-2 -c h264 --preset quality --cqp 23:25:28 --aq-strength 10 --ref 1 --bframes 0 --gop-len 15 --lookahead 15 --qp-max 30 --aq --cabac --mv-precision q-pel --audio-codec aac --audio-bitrate 384 --avsync cfr !nvcm!
    ) else (
        echo 代理文件已存在,跳过:%%i
    )

:next_file
)

powershell write-host -fore cyan "====================== Processing is FINISHED ======================="
echo ----------------------------
echo 批处理开始时间:%t0%
echo 批处理结束时间:%TIME%, %DATE%
echo ----------------------------
pause
endlocal

关键修改说明

  • 固定编码器路径:通过NVEncPath变量指定编码器绝对路径,确保批处理能直接找到程序,无需将编码器复制到视频目录
  • 支持拖拽操作:用%*捕获所有拖拽的文件,遍历处理每个传入文件;增加无文件拖拽时的提示逻辑
  • 变量状态重置:每次循环重置nvcm变量,避免前一个文件的参数残留影响后续处理
  • 格式校验:增加对拖拽文件格式的判断,自动跳过非支持的视频文件
  • 错误前置检查:启动时先验证编码器是否存在,避免因路径错误导致无效执行
  • 延迟变量扩展:启用enabledelayedexpansion确保循环内的nvcm变量能正确传递给编码器命令

使用步骤

  1. 将批处理文件(如proxy generator.bat)和nvencc文件夹一同放到D:\Encoder目录下(确保NVEncC64.exe在D:\Encoder\nvencc\路径内)
  2. 从外部硬盘或任意位置选择目标视频文件,直接拖拽到批处理文件图标上
  3. 等待编码完成,代理文件会自动保存到ProxyDir指定的目录

内容的提问来源于stack exchange,提问作者rezpower

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 11:50:45