2011-10-06 58 views
1

ConsoleApplication:的PowerShell:RunSpace.SessionStateProxy.SetVariable沒有設置變量

class Program 
{ 
    static void Main() 
    { 
     using (var runSpace = RunspaceFactory.CreateRunspace()) 
     { 
      runSpace.Open(); 
      runSpace.SessionStateProxy.SetVariable("Var1", "Alex"); 
      using (var pipeline = runSpace.CreatePipeline("C:\\P.ps1")) 
      { 
       pipeline.Invoke(); 
      } 
     } 
    } 
} 

P.ps1

$logFile = "C:\MyLog.txt" 

function Write-Log ([string] $message) 
{ 
    Add-Content -Path $logFile -Value $message 
} 

Write-Log "Var1: " + $Var1 

我想到 「VAR1:亞歷克斯」 被寫進我的日誌文件,但我得到「Var1:」。

我錯了什麼?

編輯:

我原來的問題是在以下站點:http://nugetter.codeplex.com/workitem/31555

回答

4

因爲在空間寫日誌它會將其視爲多個參數。

試試這個

Write-Log "Var1: $Var1" 
+0

首先正確答案!祝賀:)不幸的是,我只能一次投票。 – Rookian