Caminho do diretório na variável de ambiente como argumento para o comando CMD DIR

Respostas:

1

Sim, é porque seu valor contém espaço.

O intérprete, que é o Prompt de Comando, trata o espaço como separador entre os comandos.

Separadores são um dos vários caracteres especiais para o intérprete ( cmd.exe).

Os espaços de aspas duplas são chamados de caracteres especiais de escape .

Outra maneira de escapar de um caractere especial é usar o sinal de intercalação ^na frente dele, que é o prefixo (ou seja, prefixo) do caractere especial.

Por exemplo, você pode conseguir o mesmo emitindo:

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

Observe o cursor após "Programa"

Para contrastar e esclarecer, o caractere maior que >também é um caractere especial para o Prompt de Comando. É um caractere especial porque tem uma função especial de redirecionar a saída , ou seja, funciona como um comando próprio, apesar de ser apenas um caractere.

Por isso, também deve ser escapado.

Por exemplo, você pode definir seu prompt para aparecer como uma seta indicativa escapando-o adequadamente:

prompt ^>

Resultaria em:

Exemplo de captura de tela para ilustrar o escape de caracteres especiais

Portanto, é uma boa prática sempre citar duas vezes o argumento, que é o valor da variável, ou seja, "%Variable%"para que o intérprete nunca espere uma confusão nesse contexto.


fonte
0

O argumento precisa ser colocado entre aspas duplas, pois o caminho em questão contém um espaço:

>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
...
lidar com
fonte