Mój scenariusz jest prosty - kopiuję próbki skryptów z książki online Mercurial i wklejam je w wierszu polecenia systemu Windows. Problem polega na tym, że próbki w książce używają pojedynczych cudzysłowów. Gdy w wierszu polecenia systemu Windows przekazywany jest ciąg pojedynczego cudzysłowu, ten ostatni nie rozpoznaje, że wszystko między pojedynczymi cudzysłowami należy do jednego ciągu.
Na przykład następujące polecenie:
hg commit -m 'Initial commit'
nie można wkleić tak, jak w wierszu polecenia, ponieważ ten ostatni traktuje 'Initial commit'
jako dwa ciągi - 'Initial
i commit'
. Muszę edytować polecenie po wklejeniu i jest to denerwujące.
Czy można poinstruować wiersz polecenia systemu Windows, aby traktował pojedyncze cudzysłowy podobnie jak podwójne?
EDYTOWAĆ
Po odpowiedzi JdeBP przeprowadziłem trochę badań. Oto podsumowanie:
Punkt wejścia Mercurial wygląda tak (jest to program python):
def run(): "run the command in sys.argv" sys.exit(dispatch(request(sys.argv[1:])))
Stworzyłem więc mały program python, który naśladuje przetwarzanie wiersza poleceń używane przez mercurial:
import sys print sys.argv[1:]
Oto dziennik konsoli 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 ~]$
A oto odpowiedni dziennik konsoli 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>
Widać wyraźnie, że system Windows nie traktuje pojedynczych cudzysłowów jako podwójnych. I to jest istota mojego pytania.