Ścieżka katalogu w zmiennej środowiskowej jako argument polecenia CMD DIR


Odpowiedzi:


1

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:

Example screenshot to illustrate Special Character Escaping

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.


0

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
...
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.