Percorso di directory nella variabile di ambiente come argomento per il comando CMD DIR


Risposte:


1

Sì, è perché il suo valore contiene spazio.

L'interprete, ovvero Prompt dei comandi, considera lo spazio come separatore tra i comandi.

I separatori sono uno dei numerosi caratteri speciali per l'interprete ( cmd.exe).

Gli spazi con virgolette doppie sono chiamati caratteri speciali di escape .

Un altro modo per sfuggire a un personaggio speciale è usare il cursore ^davanti ad esso, ovvero anteporre (cioè il prefisso) al personaggio speciale.

Ad esempio, puoi ottenere lo stesso emettendo:

dir C:\Program^ Files\Python35\Scripts\

Nota il cursore dopo "Programma"

Per contrastare e chiarire, il carattere maggiore di >è anche un personaggio speciale per il prompt dei comandi. È un carattere speciale perché ha una funzione speciale di reindirizzamento dell'output , ovvero funziona come un comando a sé stante nonostante sia solo un singolo carattere.

Quindi dovrebbe anche essere evitato.

Ad esempio, puoi impostare il tuo prompt in modo che appaia come una freccia indicativa sfuggendolo correttamente:

prompt ^>

Si tradurrebbe in:

Schermata di esempio per illustrare la fuga di caratteri speciali

Quindi è buona norma citare sempre due volte l'argomento, ovvero il valore della variabile, il che significa che "%Variable%"l'interprete non si aspetta mai una confusione in quel contesto.


0

L'argomento deve essere racchiuso tra virgolette doppie poiché il percorso in questione contiene uno spazio:

>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
...
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.