2016-04-11 4 views
0

私はC#でカスタム引数コンプリータを実装していますが、IArgumentCompleterを継承しています。 CompleteArgumentでは、私が IArgumentCompleterのC#実装で現在のファイルシステムの場所を取得するにはどうすればよいですか?

Runspace.DefaultRunspace.SessionStateProxy.Path.CurrentFileSystemLocation.Path 

を試みたが、それはパイプラインがすでに実行されている私に言って例外をスロー

$ExecutionContext.SessionState.Path.CurrentFileSystemLocation.ProviderPath 

と同等のものをやろう。

これを行う正しい方法は何ですか?

+1

'EngineIntrinsicsのEI; ()[0]} 'を呼び出す(PowerShell ps = PowerShell.Create(RunspaceMode.CurrentRunspace)){ei = ps.AddScript(" $ ExecutionContext " – PetSerAl

答えて

0

@PetSerAlからのコメントが答えです:

string pwd; 
EngineIntrinsics ei; 
using(PowerShell ps = PowerShell.Create(RunspaceMode.CurrentRunspace)) 
{ 
    ei = ps.AddScript("$ExecutionContext").Invoke<EngineIntrinsics>()[0] 
    pwd = ei.SessionState.Path.CurrentFileSystemLocation.ProviderPath 
} 
関連する問題