You need to enable JavaScript to run this app. 如何修改youtube-dl批处理脚本,打开文件浏览器选择下载文件夹路径
优惠活动
大模型
产品
解决方案
定价
更多

如何修改youtube-dl批处理脚本,打开文件浏览器选择下载文件夹路径

可弹出文件夹选择窗口的youtube-dl批处理修改方案

Windows原生批处理没有内置GUI选文件夹的能力,我们直接调用系统自带的PowerShell组件实现标准「浏览文件夹」弹窗,不需要安装任何第三方工具,修改后可直接使用。

修改后完整代码

@ECHO OFF
chcp 65001 >nul
setlocal

ECHO ----------------------------------------------------------------------------------------------------
SET /P URL="[Enter video URL] "
ECHO ----------------------------------------------------------------------------------------------------
goto formatList

:formatList
ECHO.
ECHO ----------------------------------------------------------------------------------------------------
youtube-dl -F %URL%
ECHO ----------------------------------------------------------------------------------------------------
goto selection

:selection
ECHO.
ECHO ----------------------------------------------------------------------------------------------------
ECHO a) Video + Audio
ECHO b) Single format (Audio only / Video only)
ECHO.
SET /P option="Select option: "
:: 不区分大小写判断用户输入,输大写A/B也能正常识别
if /i "%option%" == "a" (goto download)
if /i "%option%" == "b" (goto downloadSingle)
ECHO.
ECHO Unknown value
ECHO ----------------------------------------------------------------------------------------------------
goto selection

:: 新增的文件夹选择弹窗子程序
:SelectFolder
for /f "delims=" %%p in ('powershell -noprofile -command "Add-Type -AssemblyName System.Windows.Forms; $dialog = New-Object System.Windows.Forms.FolderBrowserDialog; $dialog.Description = '请选择视频下载保存的目标文件夹'; $dialog.ShowNewFolderButton = $true; if ($dialog.ShowDialog() -eq 'OK') { Write-Output $dialog.SelectedPath }"') do set "location=%%p"
:: 处理用户点取消的异常情况
if not defined location (
  echo 错误:你未选择任何下载文件夹,脚本退出。
  echo ----------------------------------------------------------------------------------------------------
  pause
  exit
)
echo 已选择下载路径:%location%
goto :eof

:download
ECHO ----------------------------------------------------------------------------------------------------
ECHO.
ECHO ----------------------------------------------------------------------------------------------------
SET /P video="Select video format: "
SET /P audio="Select audio format: "
:: 替换原手动输路径逻辑,调用文件夹选择弹窗
call :SelectFolder
ECHO.
:: 修正原脚本路径参数的转义错误,加引号适配带空格的路径
youtube-dl --write-sub --embed-subs -o "%location%/%%(title)s.%%(ext)s" -f %video%+%audio% -i --ignore-config --hls-prefer-native %URL% 
ECHO ----------------------------------------------------------------------------------------------------
ECHO.
PAUSE
EXIT

:downloadSingle
ECHO ----------------------------------------------------------------------------------------------------
ECHO.
ECHO ----------------------------------------------------------------------------------------------------
SET /P format="Select format: "
:: 补上原脚本缺失的单格式分支路径选择逻辑
call :SelectFolder
ECHO.
youtube-dl --write-sub --embed-subs -o "%location%/%%(title)s.%%(ext)s" -f %format% -i --ignore-config --hls-prefer-native %URL% 
ECHO ----------------------------------------------------------------------------------------------------
ECHO.
PAUSE
EXIT

关键修改说明

  • 新增:SelectFolder子程序:调用系统内置组件弹出标准文件夹选择窗口,支持用户直接在弹窗里新建文件夹,选中的路径会自动赋值给location变量,无需手动输入。
  • 原脚本两个下载分支中手动输入路径的逻辑全部替换为弹窗选择,不需要再手动敲路径。
  • 修正原脚本3个隐藏bug:
    • 原脚本把批处理变量%location%错误转义为%%location%%,会导致youtube-dl收到字面文本而非实际路径,现在已修正。
    • 原脚本输出路径参数没有加双引号,如果路径带空格(比如D:\我的视频)会导致参数解析错误,现在已加双引号兼容所有合法路径。
    • 原脚本单格式下载分支完全缺失路径选择逻辑,现在已补上,两个分支都能正常弹窗选文件夹。
  • 优化体验细节:
    • 开头新增chcp 65001 >nul切换控制台编码,避免中文提示乱码。
    • 选项判断改为不区分大小写,用户输大写A/B或者小写a/b都能正常识别。
    • 新增取消操作的异常处理,用户点弹窗取消时会给出明确提示,不会带着空路径跑命令报错。

内容的提问来源于stack exchange,提问作者Muhammad Firdaus Nata

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.02 09:06:11