所以我试图在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.
答案 0 :(得分:0)
$sc
的范围仅限于Create-ScriptEngine
函数,因此尝试在函数外部调用它将导致null。
此外,您的$js
似乎也为空,因为您的功能并未返回任何内容。我假设您希望将return $sc
放在Create-ScriptEngine
函数中以使代码正常工作。