2010-07-29 34 views
6

阅读powershells add-type的文档,似乎可以将JScript代码添加到您的powershell会话中。在PowerShell中使用JScript

首先是存在的,这是如何实现的一个体面的例子,其次,你可以用它来验证普通的JavaScript代码(我的理解JScript是MS实现)

回答

5

这可能是一个很好的起点

PowerShell ABC's - J is for JavaScript(由Joe普鲁特)

这里是从上述文章中的代码片断:

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; 
    } 
} 
PS> $jscode = @" 
function jslen(s) 
{ 
    return s.length; 
} 
"@ 
PS> $js = Create-ScriptEngine "JScript" $jscode; 
PS> $str = "abcd"; 
PS> $js.jslen($str); 
4 
+0

感谢那几乎是现货 – RC1140 2010-07-29 14:42:08

0

这里是一个简单的JSON解析器:https://gist.github.com/octan3/1125017

$code = "static function parseJSON(json) {return eval('(' +json + ')');}" 
$JSONUtil = (Add-Type -Language JScript -MemberDefinition $code -Name "JSONUtil" -PassThru)[1] 

$obj = $JSONUtil::parseJSON($jsonString) 

-PassThru会给你一个对象(其实是两个对象;你想要第二个),你可以用它来调用函数。

你可以忽略它,如果你想要的,这样调用该函数:

[Microsoft.PowerShell.Commands.AddType.AutoGeneratedTypes.JSONUtil]::parseJSON($jsonString) 

但是这是一个有点痛。