буквальное использование% в пакете - PullRequest
2 голосов
/ 28 февраля 2010

У меня есть командный файл, содержащий скрипт Python, использующий шаблон вывода>% (NAME) s когда я запускаю его, cmd думает, что это var и igoners% так что

youtube-dl.py -b  -o %(uploader)s-%(title)s-%(id)s.%(ext)s 

превращается в

youtube-dl.py -b  -o (uploader)s-(title)s-(id)s.(ext)s  

как мне убедить cmd не обрабатывать его и передать его как есть Python?

Ответы [ 3 ]

3 голосов
/ 28 февраля 2010

Если вы не хотите, чтобы ваши % символы интерпретировались cmd.exe, вы должны поставить перед ними префикс ESC:

c:\> set qwert=55
c:\> echo %qwert%
55
c:\> echo ^%qwert^%
%qwert%
3 голосов
/ 28 февраля 2010

Заменить% на %%:

youtube-dl.py -b  -o %%(uploader)s-%%(title)s-%%(id)s.%%(ext)s

(Обратите внимание, что, в отличие от Unix, двойные кавычки мало что делают в командной строке Windows.)

1 голос
/ 28 февраля 2010

вот альтернативное предложение: вам не нужно вмешиваться в "причуды" cmd, с которыми вы столкнулись. Передайте в ваш скрипт обычные текстовые аргументы, затем в вашем скрипте выполните шаблонирование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...