2012-04-02 20 views
0

Powershellを使って環境変数にアクセスしようとしています。私のコントロール外の環境変数は、この形式でピリオドを含む:Powershellで環境変数をピリオド "。"で解決できません。その中に

$myvar = $env:ENVIRONMENT_VARIABLE.1 

ENVIRONMENT_VARIABLE.1 

はそのため、ローカル変数に環境変数の値を代入すると、それはこのようになります

しかし、この変数を取得しようとするたびに、常に ".1"が取り除かれ、何も返されません。

私は期間+ Bash = no buenoを認識していますが、これも私の支配から外れており、回避策が必要です。それが助け場合、私はすでに運と同様にこれを試してみました:

$myvar = ${env:ENVIRONMENT_VARIABLE.1} 

私はこの上の任意およびすべての助けに感謝します。ありがとう!

答えて

2

あなたは私のために作品を使用している最後のフォーマットは:

PS> ls env:\fo* 

Name       Value 
----       ----- 
Foo.1       bar.1 


PS> ${env:foo.1} 
bar.1 
+0

OK - それはあまりにも私のために働いています。それは私の終わりに本当に起こっていることに私を導く。私のコードはFoo.1がFooに置き換えられたwhileループにあります。$ i - $ iは増分された変数です。$ {env:foo。$ i}のようになります。私の曖昧さを残して申し訳ありません。本当の問題は$ iが整数に解決されない理由です。 – user1068261

+0

curliesの中にあるものは、プロパティを逆参照する '.'や、変数を参照するための' $ 'など、通常は評価されません。代わりに 'set-item" env:\ foo。$ i "bar.2'を試してみてください。 env varを置き換えずに新しい環境変数を作成することに注意してください。 'remove-item'を使うといつも古いenv varを削除することができます。 –

+0

うーん、私はあなたに従っているかどうか分からない。私はenv varを設定/削除/操作したくありません。私が望むのは、後でジョブを実行するenv varの価値です。これを行う方法はありますか? – user1068261

関連する問題