arquivo em lote do Youtube-dl - “TypeError:% c requer int ou char”

0

Quando executo um arquivo em lote contendo o seguinte:

@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

Eu recebo o seguinte erro: "TypeError:% c requer int ou char"

Parece que o problema é com a variável% cd%, onde eu quero que o programa pegue o diretório de onde foi lançado.

Eu me certifiquei de envolver a variável em sinais de porcentagem dupla, então não vejo qual é o problema. Isso é executado muito bem se eu digitá-lo manualmente no Prompt de Comando (sem a seção% userinput% e, claro, com sinais de porcentagem única para as variáveis).

Aqui está uma imagem para a janela completa do console:

    
por Iambutanonymous 29.04.2017 / 05:07

1 resposta

0

Tente isto:

@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

A diferença é que %cd% , que é uma variável de ambiente, deve ser agrupado com somente um par de sinais de porcentagem.

Fonte: link

However you should not touch %'s that are not plain characters, e.g. environment variables for expansion should stay intact: -o "C:\%HOMEPATH%\Desktop\%%(title)s.%%(ext)s".

    
por 29.04.2017 / 05:21