当我运行包含以下内容的批处理文件时:
@echo off
set /p userinput=C:/youtube-dl.exe -o "%%cd%%/%%(title)s.%%(ext)s"
C:/youtube-dl.exe -o "%%cd%%/%%(title)s.%%(ext)s" %userinput%
pause
我收到以下错误:“TypeError:%c 需要 int 或 char”
问题似乎出在 %cd% 变量上,我希望程序从中获取启动它的目录。
我已确保将变量括在双百分号中,因此我看不出问题所在。如果我在命令提示符中手动输入它(没有 %userinput% 部分,当然变量只有一个百分号),它就会执行得很好。
这是完整控制台窗口的图像:
答案1
尝试这个:
@echo off
set /p userinput=C:/youtube-dl.exe -o "%cd%/%%(title)s.%%(ext)s"
C:/youtube-dl.exe -o "%cd%/%%(title)s.%%(ext)s" %userinput%
pause
不同之处在于%cd%
,它是一个环境变量,应该用只有一个百分号对。
来源:https://github.com/rg3/youtube-dl/blob/master/README.md#readme
但是您不应该触碰非纯字符的%,例如扩展的环境变量应该保持不变:-o“C:\%HOMEPATH%\Desktop\%%(title)s.%%(ext)s”。