Мой сценарий прост - я копирую образцы скриптов из онлайн-книги Mercurial и вставляю их в командную строку Windows. Проблема в том, что примеры в книге используют строки в одинарных кавычках. Когда в командной строке Windows передается строка в одинарных кавычках, последняя не распознает, что все, что находится в одинарных кавычках, принадлежит одной строке.
Например, следующая команда:
hg commit -m 'Initial commit'
не может быть вставлен, как в командной строке, потому что последний обрабатывает 'Initial commit'
как две строки - 'Initial
и commit'
. Я должен редактировать команду после вставки, и это раздражает.
Можно ли поручить командной строке Windows обрабатывать одинарные кавычки аналогично двойным?
РЕДАКТИРОВАТЬ
После ответа JdeBP я провел небольшое исследование. Вот резюме:
Точка входа Mercurial выглядит так (это программа на Python):
def run(): "run the command in sys.argv" sys.exit(dispatch(request(sys.argv[1:])))
Итак, я создал крошечную программу на python для имитации обработки командной строки, используемой mercurial:
import sys print sys.argv[1:]
Вот консольный журнал Unix:
[hg@Quake ~]$ python 1.py "1 2 3" ['1 2 3'] [hg@Quake ~]$ python 1.py '1 2 3' ['1 2 3'] [hg@Quake ~]$ python 1.py 1 2 3 ['1', '2', '3'] [hg@Quake ~]$
А вот соответствующий журнал консоли Windows:
C:\Work>python 1.py "1 2 3" ['1 2 3'] C:\Work>python 1.py '1 2 3' ["'1", '2', "3'"] C:\Work>python 1.py 1 2 3 ['1', '2', '3'] C:\Work>
Хорошо видно, что Windows не рассматривает одинарные кавычки как двойные. И это суть моего вопроса.