Использование JScript в powershell - PullRequest
6 голосов
/ 29 июля 2010

Читая документацию для PowerShell add-type, кажется, вы можете добавить код JScript в ваш сеанс PowerShell.

Во-первых, есть ли хороший пример того, как это делается, и, во-вторых, вы можете использовать это для проверки нормального кода JavaScript (насколько я понимаю, JScript - это реализация MS)

Ответы [ 2 ]

5 голосов
/ 29 июля 2010

Это может быть хорошей отправной точкой

ABC PowerShell - J для JavaScript (Джо Пруитт)

Вот фрагмент кода из вышеприведенной статьи:

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
1 голос
/ 19 марта 2015

Вот простой анализатор 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)

но это немного больно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...