Definir variável de ambiente contendo no símbolo

1

Gostaria de definir uma variável de ambiente contendo a URL do meu servidor proxy com minhas credenciais, como neste .

O problema que estou tendo é que minha senha contém um símbolo e não sei como escapar corretamente:

SET HTTP_PROXY=http://username:p@[email protected]:8080

Como faço isso?

A propósito, percebo que configurar uma variável de ambiente contendo minhas credenciais é uma Idéia Muito Ruim. Estou aberto a outras sugestões que me permitiriam usar o compositor por trás de um proxy autenticado, se alguém tiver um.

    
por David Kennedy 15.01.2014 / 18:56

2 respostas

2
set HTTP_PROXY=http://username:p^%[email protected]:8080
  1. É preciso cento codificar o @ na senha como %40 , porque @ é um delimitador.
  2. É necessário escapar o % no comando set para que o intérprete de comando nem tente executar a substituição da variável de ambiente. O caractere ^ como um caractere de escape é uma convenção que existe desde a cmd da IBM / Microsoft para OS / 2 1.x, e que é suportada no cmd da Microsoft no Windows NT - bem como em intérpretes de comando como TCC / LE - até hoje.
por 15.01.2014 / 23:00
0

Caracteres especiais podem ser escapados com "^" no Shell do Windows CMD. Então:

SET HTTP_PROXY=http://username:p^@assword^@proxy.yourdomain.com:8080

seria produzido como:

C:\>echo %HTTP_PROXY%
http://username:p@[email protected]:8080

no shell. Mas isso depende da ferramenta que está usando a variável, eu não sei ao certo se o git toma isso como entrada corretamente (mas eu acho que sim).

    
por 15.01.2014 / 19:50