Como modifico uma variável de ambiente com caracteres especiais?

Como modifico uma variável de ambiente com caracteres especiais?

Meu prompt está definido como $P$_CMD>(com um espaço no final). Isso funciona muito bem. No entanto,virtualenvdeativar.battem a seguinte linha:

set PROMPT=(approot) %PROMPT%

Quando executo esse comando, o cmd reclama que

The syntax of the command is incorrect.

Isso não aconteceu antes de eu mudar meu prompt. Eu tentei adicionar aspas (double "e single ') ao redor %PROMPT%, mas isso não funciona. Como modifico o prompt, utilizando o valor antigo, quando o valor antigo contém caracteres especiais?

Responder1

Com a variável prompt, você nunca deve usar caracteres especiais. Utilize sempre ospecial codesque pode ser encontrado prompt /?sempre que possível.

Em resposta ao seu comentário:

Com outras variáveis, você pode usarSetLocal EnableDelayedExpansion. Em seguida, consulte as variáveis ​​com !s em vez de %s.

A expansão atrasada fará com que as variáveis ​​sejam expandidas no tempo de execução, e não no tempo de análise. Esta opção é ativada com o SETLOCAL command. Quando a expansão atrasada está em vigor, as variáveis ​​podem ser referenciadas usando !variable_name!(além do normal %variable_name%)

Como a variável é expandida em tempo de execução e o caractere especial >(neste caso) só é especial em tempo de análise, você evita totalmente o problema.

Por exemplo:

SetLocal EnableDelayedExpansion

set test=World^>
set test2=Hello !test!

Observe que ^é o caractere de escape, permitindo que você insira caracteres especiais (a variável seria armazenada como World>, portanto, a menos que você set test=World^^^>leve a um valor armazenado de World^>, isso não funcionará para sua pergunta.

Escapar pode ser complicado. Por exemplo, para definir test2como literal !test!, você precisa usar ^^!test^^!, caso contrário, obterá apenas o valor de test. Se eu realmente precisar, normalmente apenas vario o número de caracteres de escape até que funcione, é mais fácil do que tentar descobrir as regras de análise.

informação relacionada