Когда я запускаю командный файл, содержащий следующее:

@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 ответ1

0

Попробуй это:

@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".

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .