2010-07-29 21 views
6

Đọc qua tài liệu về các quyền hạn bổ sung có vẻ như bạn có thể thêm mã JScript vào phiên bản quyền hạn của bạn.Sử dụng JScript trong powershell

Thứ nhất là có một ví dụ khá về cách này được thực hiện và thứ hai bạn có thể sử dụng để xác nhận mã javascript bình thường (như tôi hiểu JScript là việc thực hiện MS)

Trả lời

5

Đây có thể là điểm khởi đầu tốt

PowerShell ABC's - J is for JavaScript (Joe Pruitt)

Dưới đây là một đoạn mã từ bài viết ở trên:

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

Cảm ơn bạn đã gần như phát hiện – RC1140

0

đây là một phân tích cú pháp JSON đơn giản: 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 sẽ cung cấp cho bạn một đối tượng (thực sự hai đối tượng; bạn muốn cái thứ hai) mà bạn có thể sử dụng để gọi các hàm.

Bạn có thể bỏ qua nó nếu bạn muốn, và gọi hàm như thế này:

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

nhưng đó là một chút đau đớn.

Các vấn đề liên quan