Jak a Zmienna środowiskowa Windows / CMD być użyte jako argument do Wbudowane polecenie dir CMD ?
>echo %pythonpath%
C:\Program Files\Python35\Scripts\
>dir %pythonpath%
The system cannot find the path specified.
Jak a Zmienna środowiskowa Windows / CMD być użyte jako argument do Wbudowane polecenie dir CMD ?
>echo %pythonpath%
C:\Program Files\Python35\Scripts\
>dir %pythonpath%
The system cannot find the path specified.
Tak, ponieważ jego wartość zawiera przestrzeń.
Interpreter, czyli Wiersz polecenia, traktuje przestrzeń jako separator między poleceniami.
Separatory są jednym z kilku znaki specjalne dla tłumacza ( cmd.exe
).
Nazywane są spacje z podwójnym cytowaniem uciekać znaki specjalne.
Innym sposobem ucieczki specjalnej postaci jest użycie karetki ^
przed nim, czyli przedrostek (tj. przedrostek) karetki do znaku specjalnego
Na przykład możesz to osiągnąć, wydając:
dir C:\Program^ Files\Python35\Scripts\
Zwróć uwagę na karetkę po „Programie”
Aby kontrastować i wyjaśniać, postać większa niż >
jest także znakiem specjalnym dla wiersza polecenia. Jest to specjalny znak, ponieważ ma specjalną funkcję przekierowanie wyjścia to znaczy, że działa jako samodzielna komenda, mimo że jest tylko jednym znakiem.
Więc powinno się również uciekać.
Na przykład możesz ustawić monit, aby pojawił się jako orientacyjna strzałka, odpowiednio go uciekając:
prompt ^>
Spowoduje to:
Dobrą praktyką jest więc podwójne cytowanie argumentu, czyli wartości zmiennej, czyli "%Variable%"
więc tłumacz nigdy oczekuje zamieszania w tym kontekście.
Argument należy ująć w podwójne cudzysłowy, ponieważ dana ścieżka zawiera spację:
>dir "%pythonpath%"
Volume in drive C is System
Volume Serial Number is 0000-ABCD
Directory of C:\Program Files\Python35\Scripts
09.10.2016 08:13 <DIR> .
09.10.2016 08:13 <DIR> ..
23.09.2016 14:59 98.145 autopep8.exe
...