Powershell无法扩展此javascript内容

时间:2017-03-01 22:19:55

标签: javascript powershell

将答案应用于我之前的问题How to expand file content with powershell

当我试图扩大这个时,我偶然发现了一个致命的错误:

test.js:

<script type="text/javascript">
    $('.mylink').click(function(event) {
        var hash = $(this).attr("href");
    });
    // $var
</script>  

test.ps1

$test = get-content -raw test.html
$var = "test"

# Write to output file using UTF-8 encoding *without a BOM*.
[IO.File]::WriteAllText(
  "$PWD/out.html",
  $ExecutionContext.InvokeCommand.ExpandString($test)
)

1 个答案:

答案 0 :(得分:2)

$user = $this->container->get('security.token_storage')->getToken()->getUser(); $form = $this->formFactory->create(TheFormType::class, <some data object>, ['user' => $user]); 是PowerShell中的特殊符号,$表示内联表达式,其内容已展开,因此您需要在扩展之前通过添加反引号$()来转义它`

$(

但是,如果您在模板中使用PowerShell的$ExecutionContext.InvokeCommand.ExpandString(($test -replace '\$\(', '`$(')) ,则需要更智能的替换问题以及可能更复杂的算法来区分jQuery和PS。