活力39173
在线时间13450 小时
阅读权限200
管理员
自由的灵魂
- 积分
- 106852
- 主题
- 5602
- 回帖
- 26633
- 注册时间
- 2003-4-10
- 最后登录
- 2026-8-14
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
使用Quicker动作“视频剪辑(FFmpeg)”时,需要把ffmpeg可执行程序的目录加入到系统 PATH 变量中,否则系统找不到 FFmpeg 命令在哪。我们以“D:\LVSOFT\ffmpeg\bin”这个路径为例,讲解一下怎样将 ffmpeg 一键写入系统PATH变量和用户PATH变量。
可以用批处理脚本一键添加,支持同时写入系统PATH(需管理员权限)和用户PATH(当前用户)。以下是三种方法:
方法一:批处理脚本(推荐,安全可控)
- @echo off
- chcp 65001 >nul
- set "FFMPEG_PATH=D:\LVSOFT\ffmpeg\bin"
- :: 检查管理员权限(修改系统PATH需要)
- net session >nul 2>&1
- if %errorlevel% neq 0 (
- echo [提示] 未获取管理员权限,将只修改用户PATH
- echo 如需修改系统PATH,请右键"以管理员身份运行"
- echo.
- set "ADMIN=0"
- ) else (
- set "ADMIN=1"
- )
- :: ========== 用户PATH(当前用户,无需管理员) ==========
- echo [1/2] 正在检查用户PATH...
- for /f "tokens=2*" %%a in ('reg query "HKCU\Environment" /v Path 2^>nul ^| findstr /i "Path"') do set "USER_PATH=%%b"
- if not defined USER_PATH (
- echo 用户PATH不存在,正在创建...
- reg add "HKCU\Environment" /v Path /t REG[i]EXPAND[/i]SZ /d "%FFMPEG_PATH%" /f >nul
- ) else (
- echo 当前用户PATH: %USER_PATH%
- echo %USER[i]PATH% | find /i "%FFMPEG[/i]PATH%" >nul
- if !errorlevel! equ 0 (
- echo [跳过] 该路径已存在于用户PATH中
- ) else (
- reg add "HKCU\Environment" /v Path /t REG[i]EXPAND[/i]SZ /d "%USER[i]PATH%;%FFMPEG[/i]PATH%" /f >nul
- echo [成功] 已添加到用户PATH
- )
- )
- :: ========== 系统PATH(需要管理员权限) ==========
- if %ADMIN%==1 (
- echo.
- echo [2/2] 正在检查系统PATH...
- for /f "tokens=2*" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path 2^>nul ^| findstr /i "Path"') do set "SYS_PATH=%%b"
- if not defined SYS_PATH (
- echo 系统PATH不存在,正在创建...
- reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG[i]EXPAND[/i]SZ /d "%FFMPEG_PATH%" /f >nul
- ) else (
- echo 当前系统PATH: %SYS_PATH%
- echo %SYS[i]PATH% | find /i "%FFMPEG[/i]PATH%" >nul
- if !errorlevel! equ 0 (
- echo [跳过] 该路径已存在于系统PATH中
- ) else (
- reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG[i]EXPAND[/i]SZ /d "%SYS[i]PATH%;%FFMPEG[/i]PATH%" /f >nul
- echo [成功] 已添加到系统PATH
- )
- )
- ) else (
- echo.
- echo [2/2] 跳过系统PATH修改(需要管理员权限)
- )
- echo.
- echo =========================================
- echo 操作完成!
- echo 请重启命令提示符或注销/重新登录以使更改生效
- echo =========================================
- pause
复制代码
使用方法:
- 新建文本文件,粘贴上述代码,保存为 addffmpegpath.bat
- 双击运行:仅添加用户PATH(当前用户有效)
- 右键 → 以管理员身份运行:同时添加系统PATH + 用户PATH(所有用户有效)
方法二:直接导入注册表文件(.reg)
如果你只想快速导入(注意:会覆盖而非追加,建议先备份):
添加到用户PATH(当前用户):
- Windows Registry Editor Version 5.00
- [HKEY[i]CURRENT[/i]USER\Environment]
- "Path"=hex(2):44,00,3a,00,5c,00,4c,00,56,00,53,00,4f,00,46,00,54,00,5c,00,66,00,66,00,6d,00,70,00,65,00,67,00,5c,00,62,00,69,00,6e,00,3b,00,25,00,50,00,41,00,54,00,48,00,25,00,00,00
复制代码上面的 hex 值是 D:\LVSOFT\ffmpeg\bin;%PATH% 的 Unicode 编码,会自动追加到现有用户PATH前。
更安全的做法:先手动导出 HKEYCURRENTUSER\Environment,编辑其中的 Path 值,在末尾追加 ;D:\LVSOFT\ffmpeg\bin,再导入。
方法三:PowerShell 脚本(更现代)
- $ffmpegPath = "D:\LVSOFT\ffmpeg\bin"
- [size=6][b]用户PATH(当前用户)[/b][/size]
- $userPath = [Environment]::GetEnvironmentVariable("Path", "User")
- if ($userPath -notlike "[i]$ffmpegPath[/i]") {
- [Environment]::SetEnvironmentVariable("Path", "$userPath;$ffmpegPath", "User")
- Write-Host "已添加到用户PATH" -ForegroundColor Green
- } else {
- Write-Host "用户PATH中已存在" -ForegroundColor Yellow
- }
- [size=6][b]系统PATH(需要管理员权限,会触发UAC)[/b][/size]
- $sysPath = [Environment]::GetEnvironmentVariable("Path", "Machine")
- if ($sysPath -notlike "[i]$ffmpegPath[/i]") {
- try {
- [Environment]::SetEnvironmentVariable("Path", "$sysPath;$ffmpegPath", "Machine")
- Write-Host "已添加到系统PATH" -ForegroundColor Green
- } catch {
- Write-Host "添加系统PATH失败(需要管理员权限)" -ForegroundColor Red
- }
- } else {
- Write-Host "系统PATH中已存在" -ForegroundColor Yellow
- }
复制代码
关键说明
| 项目 | 说明 | | 生效方式 | 修改后需重启CMD/新开会话,或注销重新登录才能生效 | | 重复添加 | 上述脚本已做防重复处理,不会重复添加 | | 类型选择 | 用户PATH仅对当前用户生效;系统PATH对所有用户生效 | | 路径存在性 | 脚本不会验证 D:\LVSOFT\ffmpeg\bin 是否真实存在,请确保路径正确 |
推荐使用方法一(批处理),因为它会自动检测是否已有该路径,避免重复,且能智能判断权限。
IsaacZ在Win11上用方法三一次性成功,其他两种方法没试。
|
|