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

批处理脚本中SET /P fname无法识别含空格文件名的解决方法

解决批处理脚本无法识别含空格文件名的问题

修改后的脚本代码

@echo off
SET /P "fname=Input File Name: "
for /f "delims=" %%f in ("%fname%") do (
    "C:\ffmpeg" -i "%%~f" -aspect 720:540 -c copy "converted/%%~nf_.mp4"
)

关键修改说明

  1. 变量赋值加引号:SET /P "fname=Input File Name: " 用双引号包裹整个赋值语句,确保用户输入的带空格文件名被完整存储到变量中,不会被拆分。
  2. 使用for /f并禁用分隔符:for /f "delims=" 取消了批处理默认的空格、制表符等分隔规则,将整个文件名作为单个循环项处理,避免原脚本中文件名被空格拆分成多个无效项的问题。
  3. 变量传入加引号:("%fname%") 把变量用双引号包裹后传入循环,确保即使用户输入时没加引号,整个文件名也能被正确识别。

如果需要处理&、!这类特殊字符,可以启用延迟扩展进一步优化:

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
SET /P "fname=Input File Name: "
for /f "delims=" %%f in ("!fname!") do (
    "C:\ffmpeg" -i "%%~f" -aspect 720:540 -c copy "converted/%%~nf_.mp4"
)
ENDLOCAL

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:42:13