Ustaw zmienną środowiskową zawierającą symbol


1

Chciałbym ustawić zmienną środowiskową zawierającą adres URL mojego serwera proxy z moimi poświadczeniami, tak jak w tym poście na blogu .

Problemem jest to, że moje hasło zawiera symbol at i nie jestem pewien, jak poprawnie go uniknąć:

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

Jak mam to zrobic?

Nawiasem mówiąc, zdaję sobie sprawę, że ustawienie zmiennej środowiskowej zawierającej moje dane uwierzytelniające jest bardzo złym pomysłem. Jestem otwarty na inne sugestie, które pozwolą mi użyć kompozytora za uwierzytelnionym proxy, jeśli ktoś go ma.


Nie wyjaśniłeś, że mówisz o „ucieczce” URI , a nie o ucieczce interpretera poleceń . Dlatego otrzymujesz odpowiedzi na temat ucieczki interpretera poleceń.
JdeBP

Przepraszam, miałem na myśli ucieczkę URI.
David Kennedy,

Odpowiedzi:


2
set HTTP_PROXY=http://username:p^%40assword@proxy.yourdomain.com:8080
  1. Trzeba procent kodowania@ hasło jak %40, bo @to separator.
  2. Trzeba uciekać% w setkomendzie tak, że interpreter poleceń nawet nie próbować wykonywać zmienną środowiskową podstawienie. ^Znak jako znak ucieczki jest konwencja, która już od tak daleko jak IBM / Microsoft cmddla OS / 2 1.x, i który jest obsługiwany w Microsoft cmdWindows NT - jak i ustnych poleceń takich jak TCC / LE - do dzisiaj.

0

Znaki specjalne można zmieniać za pomocą „^” w powłoce CMD systemu Windows. Więc:

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

zostanie wyprowadzony jako:

C:\>echo %HTTP_PROXY%
http://username:p@assword@proxy.yourdomain.com:8080

na skorupce. Ale to zależy od narzędzia, które używa zmiennej, nie wiem na pewno, czy git poprawnie przyjmuje to jako dane wejściowe (ale tak myślę).


Myślę, że jestem zdezorientowany, w jaki sposób może odróżnić pierwszy znak od drugiego, czy to nie ma znaczenia?
David Kennedy

To nie ma znaczenia, „^” po prostu ucieka następującemu znakowi. Za każdym razem - więc ^^. ^^ też będzie działać (wyjście: ^. ^).
bjoster
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.