2016-12-07 6 views
0

を動作しません:PowerShellの機能のデフォルトのパラメータは、私が作成したモジュール内の関数を持っている

function New-MyAppDeployment { 
    param 
    (
     [string]$ConfigPath = "C:\Projects\MyApp\Environments", 
     [string]$EnvName, 
     [string]$EnvironmentFile 
    ) 
    # Do some things with the above parameters 
    if(!$EnvironmentFile) 
    { 
     $envFilename = $EnvName + ".json"; 
     $EnvironmentFile = Join-Path $ConfigPath $envFilename 

    } 

    $settings = Get-Content -Raw -Path $EnvironmentFile | ConvertFrom-Json 

    return $settings  
    } 
    Export-ModuleMember -function New-MyAppDeployment 

私は、このようにそれを呼び出す: インポートモジュール-Force $ PSScriptRoot \ myapp.psm1 $ newSettings = New-MyAppDeployment -EnvName "dev"

ただし、$ConfigPathは、関数内にあるときは常に空の文字列に設定されます。

何が原因なのですか?

+0

上記の例は私にとってはうまくいきますが、 '$ settings'は何をしているのか分かりません – 4c74356b41

+1

私と同じです。さらに詳しいヘルプが必要な場合は、[mcve]を入力してください。 – briantist

+0

これはあなたが書いたスクリプトに従ってうまく動作します。しかし、私は設定が何をしているのだろうかと思っています。 –

答えて

0

それ自体が修正されているようです。おそらく、ISEの再起動がこのトリックでしたが、今度は$ConfigPathがコードをステップ実行するときに正しい値を持っています。

関連する問題