2016-09-17 9 views
0

モジュール関数内の変数は、実行がスクリプトに戻った後でもスコープ内に残っていないことに気付きました。私はExport-ModuleMemberに出くわしましたが、それは助けにはならなかったでしょう、おそらく私はそれを間違って使っています。私は別のスクリプトをソースだけドットができ、それは私がaccess_tokenはを取得できるようになるが、私はアイデアを好き代替として、私が知っているモジュールからスクリプトに変数を渡すには?

FunctionLibrary.psm1

Function AuthorizeAPI 
{ 
    # does a bunch of things to find $access_token 
    $access_token = "aerh137heuar7fhes732" 
} 
Write-Host $access_token 
aerh137heuar7fhes732 

Export-ModuleMember -Variable access_token -Function AuthorizeAPI 

メインスクリプト

Import-Module FunctionLibrary 

AuthorizeAPI # call to module function to get access_token 

Write-Host $access_token 
# nothing returns 

モジュールを使用し、その中に私のすべての機能を持っている。これは実行可能ですか?ありがとうございます!

+0

'$ access_tokenは=' - > '$スクリプト:access_tokenは=' – PetSerAl

+0

フム、そのdidntの仕事。実行がメインスクリプトに戻るとき、変数はまだ空です – Quanda

+0

変数が空かどうか? – PetSerAl

答えて

1

@PetSerAlのコメントごとに、変数のスコープを変更することができます。スコープhereで読んでください。 scriptコンソールから実行しているときにスコープが動作しませんでした。 globalでした。

$global:access_token = "aerh137heuar7fhes732" 

また、関数の値を変数に戻して変数に格納することもできます。範囲の変更は必要ありません。

機能

Function AuthorizeAPI 
{ 
    # does a bunch of things to find $access_token 
    $access_token = "aerh137heuar7fhes732" 
    return $access_token 
} 

メインスクリプト

Import-Module FunctionLibrary 

$this_access_token = AuthorizeAPI # call to module function to get access_token 

Write-Host $this_access_token 
+0

$グローバルスコープは私のために働いた、ありがとう! – Quanda

関連する問題