未在Powershell中创建的类

时间:2016-08-31 15:19:16

标签: javascript powershell

所以我试图在Powershell中创建一个JavaScript函数,并使用一个名为" sc"的类:

$language = "JScript"


function Create-ScriptEngine()
{
  param([string]$language = $null, [string]$code = $null)
  if ( $language )
  {
    $sc = New-Object -ComObject ScriptControl
    $sc.Language = $language
    if ( $code )
    {
      $sc.AddCode($code);
    }
    $sc.CodeObject;
  }
}


$jscode = @"
function jslen(s)
{
  return s.length;
}
"@


$sc -ne $null
$js = Create-ScriptEngine "JScript" $jscode;
$str = "abcd";
$js.jslen($str);

使用$ sc -ne $ null我可以检查是否已经创建了类,它只是为我提供了" false"。 不确定是什么引起了这个。

如果有人在想,我会使用PowerShell 5.

1 个答案:

答案 0 :(得分:0)

$sc的范围仅限于Create-ScriptEngine函数,因此尝试在函数外部调用它将导致null。

此外,您的$js似乎也为空,因为您的功能并未返回任何内容。我假设您希望将return $sc放在Create-ScriptEngine函数中以使代码正常工作。