it-swarm-ja.com

アットマークを含む環境変数を設定します

この ブログ投稿 のように、資格情報を使用してプロキシサーバーのURLを含む環境変数を設定したいと思います。

私が抱えている問題は、パスワードにアットマークが含まれていて、それを適切にエスケープする方法がわからないことです。

SET HTTP_PROXY=http://username:[email protected]@proxy.yourdomain.com:8080

どうすればよいですか?

ちなみに、資格情報を含む環境変数を設定することは非常に悪い考えだと思います。誰かが持っている場合、認証されたプロキシの背後でcomposerを使用できるようにする、他の提案を受け入れます。

2
Big McLargeHuge
set HTTP_PROXY=http://username:p^%[email protected]:8080
  1. パーセントエンコード パスワードの@%40として使用する必要があります。これは、@は区切り文字です。
  2. コマンドインタープリターが環境を実行しようとさえしないように、setコマンドの%エスケープする必要があります変数置換。エスケープ文字としての^文字は、IBM/MicrosoftのOS/21.x用のcmdまでさかのぼる規則であり、Microsoftのcmd Windows NTの場合— およびTCC/LEなどのコマンドインタープリターの場合 —今日まで。
4
JdeBP

Windows CMDシェルでは、特殊文字を「^」でエスケープできます。そう:

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

次のように出力されます。

C:\>echo %HTTP_PROXY%
http://username:[email protected]@proxy.yourdomain.com:8080

シェルで。しかし、それは変数を使用しているツールに依存します。gitがこれを入力として正しく受け取るかどうかはわかりません(しかし、そう思います)。

0
bjoster