【发布时间】:2018-02-10 18:52:58
【问题描述】:
我正在使用 powershell,并且有类似的东西
$testResult = vstest.console $myPathToUnitTests.dll
结果很好,但是有新行(换行符,如 \n )。
我想在我的 HTML 文件中使用它,并将结果按原样保存到 javascript 文件中。
$testResult = vstest.console $myPathToUnitTests.dll
$js = "const result = $($testResult);"
$js | Set-Content $myPathToJsFile
这很好用,我可以使用它。
问题是,它不显示换行符。在我尝试过的 javascript 文件中
result = result.replace(/(?:\r\n|\r|\n)/g, '<br />');
在我尝试过的 powershell 中
$testResult = $testResult.replace("\n", "<br />")
但是,如果我在 powershell ID 中的 testResult 上放置一个断点并将鼠标悬停在我看到的变量 testResult 上
这意味着它知道有新行/换行符。我只是似乎无法坚持下去:(
【问题讨论】:
-
$testResult = $testResult -replace '\r?\n','<br />' -
我怀疑
$testResult不是字符串而是字符串数组,这意味着您可能需要这样做:$TestResult = $TestResult -Join "<br />" -
如果它确实考虑一个字符串:使用系统的
[System.Environment]::NewLine定义:$testResult = $testResult -replace [System.Environment]::NewLine, '<br />' -
@iRon 是这样,但总是这样吗?像这样的东西总是返回一个数组还是返回一个字符串/整数/枚举等
-
我不知道但是如果你把它放到一个数组中(
@(...)),比如$TestResult = @($TestResult) -Join "<br />",这是一个是 .这里需要注意的重要一点是,如果它已经是一个数组,它将保持相同的数组并且不创建另一个级别(这是标准的 PowerShell 行为)。
标签: javascript powershell