CMD中yt-dlp命令输出赋值变量时字符串截断的问题解决请求
CMD中yt-dlp命令输出赋值变量时字符串截断的问题解决请求
嘿,我来帮你搞定这个CMD里的字符串截断问题!
问题原因
你遇到的问题是因为for /F命令默认会把空格、制表符这类字符当作内容分隔符,它只会提取输出内容的第一部分(第一个空格之前的内容),所以才会把文件名里空格后的- Gource visualisation.mkv给截断掉,连后缀都没保留。
解决方法
只需要修改for /F的参数,取消默认的分隔符,让它读取整行输出内容即可。修改后的命令如下:
for /F "delims=" %O in ('yt-dlp --print filename -o %(title)s.mkv https://www.youtube.com/watch?v=Diw4iqKSV8I') do set output=%O
参数解释
"delims=":这个参数告诉for /F不要使用任何分隔符,这样整行输出的内容都会被完整赋值给变量%O,不会被空格拆分。- 另外去掉了你原命令里包裹yt-dlp命令的额外双引号,因为这里不需要额外嵌套引号,反而可能导致解析问题。
执行这个修改后的命令后,再运行set output,就能看到完整的文件名:gd3kr⧸BlenderGPT - Gource visualisation.mkv啦!
备注:内容来源于stack exchange,提问作者Rayearth
相关产品推荐
相关产品推荐

