PowerShell:RunSpace.SessionStateProxy.SetVariable不设置变量

时间:2011-10-06 12:19:30

标签: powershell pipeline runspace

ConsoleApplication:

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:Alex”写入我的日志文件,但是我得到“Var1:”。

我错了什么?

编辑:

我原来的问题出在以下网站:http://nugetter.codeplex.com/workitem/31555

1 个答案:

答案 0 :(得分:4)

由于写日志中的空间,它将它们视为多个参数。

试试这个

Write-Log "Var1: $Var1"