Javascript 在powershell中使用JScript
通读powershells add type的文档,您似乎可以将JScript代码添加到powershell会话中Javascript 在powershell中使用JScript,javascript,powershell,Javascript,Powershell,通读powershells add type的文档,您似乎可以将JScript代码添加到powershell会话中 首先,有一个很好的例子来说明这是如何实现的,其次,您可以使用它来验证正常的javascript代码(据我所知,JScript是MS实现)这可能是一个很好的起点 (乔·普鲁伊特) 以下是上述文章中的代码片段: function Create-ScriptEngine() { param([string]$language = $null, [string]$code = $nul
首先,有一个很好的例子来说明这是如何实现的,其次,您可以使用它来验证正常的javascript代码(据我所知,JScript是MS实现)这可能是一个很好的起点 (乔·普鲁伊特) 以下是上述文章中的代码片段:
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
下面是一个简单的json解析器:
-PassThru
将为您提供一个对象(实际上是两个对象;您需要第二个对象),您可以使用该对象调用函数
如果需要,可以省略它,并按如下方式调用函数:
[Microsoft.PowerShell.Commands.AddType.AutoGeneratedTypes.JSONUtil]::parseJSON($jsonString)
但是这有点痛苦。Jscript.net(或VisualBasic,F#…)它必须编译成dll
Add-Type @'
class FRectangle {
var Length : double;
var Height : double;
function Perimeter() : double {
return (Length + Height) * 2; }
function Area() : double {
return Length * Height; } }
'@ -Language JScript
$rect = [frectangle]::new()
$rect
Length Height
------ ------
0 0
谢谢,这几乎是正确的
Add-Type @'
class FRectangle {
var Length : double;
var Height : double;
function Perimeter() : double {
return (Length + Height) * 2; }
function Area() : double {
return Length * Height; } }
'@ -Language JScript
$rect = [frectangle]::new()
$rect
Length Height
------ ------
0 0