Powershell 亚姆林特报告缺少“:”--为什么? 我借用了一些C++代码中包含GooGestEnter代码的代码。然而,在这一点上,我对一切都感兴趣,所以当我的Yamlint工具开始报告错误时,我就注意了。我想了解我们正在学习使用的代码。此示例是在github上完成的,位于appveyor.yml中的工作流中。亚姆林特报道如下

Powershell 亚姆林特报告缺少“:”--为什么? 我借用了一些C++代码中包含GooGestEnter代码的代码。然而,在这一点上,我对一切都感兴趣,所以当我的Yamlint工具开始报告错误时,我就注意了。我想了解我们正在学习使用的代码。此示例是在github上完成的,位于appveyor.yml中的工作流中。亚姆林特报道如下,powershell,yaml,Powershell,Yaml,57:5错误语法错误:找不到预期的“:”语法 这不是很有帮助,但据我所知,语法是正确的。起初我认为分支语法缺少一些东西,但我没有发现任何问题。我将else作为第二个if分支(如果没有)。错误仍然保留在同一行上。这可能是Yamlint本身的一个bug,但我不能得出结论,因为我对yaml语法不太熟悉。我可能错过了什么 install: - ps: | Write-Output "Compiler: $env:compiler" Write-Output &qu

57:5错误语法错误:找不到预期的“:”语法

这不是很有帮助,但据我所知,语法是正确的。起初我认为分支语法缺少一些东西,但我没有发现任何问题。我将else作为第二个if分支(如果没有)。错误仍然保留在同一行上。这可能是Yamlint本身的一个bug,但我不能得出结论,因为我对yaml语法不太熟悉。我可能错过了什么

install:
  - ps: |
    Write-Output "Compiler: $env:compiler"
    Write-Output "Generator: $env:generator"
    Write-Output "Env:Configuation: $env:configuration"
    Write-Output "Env: $env"
    if (-not (Test-Path env:APPVEYOR_PULL_REQUEST_NUMBER)) {
      Write-Output "This is *NOT* a pull request build"
    }  <-- REPORTED MISSING ':'
    else
    {
      Write-Output "This is a pull request build"
      if (-not (Test-Path env:enabled_on_pr) -or $env:enabled_on_pr -ne "yes") {
        Write-Output "PR builds are *NOT* explicitly enabled"
      }
    }

所以,底线是,是什么引起了这个错误?如果问题出在我的代码上,我希望有人能指出正确的语法。如果问题出在Yamlint中,我想报告错误。

缩进中有错误。将-ps:|之后的所有内容缩进一次,它将被解析为无错误:

安装: -附言:| 写入输出编译器:$env:Compiler 写入输出生成器:$env:Generator 写入输出环境:配置:$Env:configuration 写入输出环境:$Env if-非测试路径环境:APPVEYOR\u PULL\u请求\u编号{ 写入输出这不是一个拉请求生成 } 其他的 { 写输出这是一个拉请求生成 if-非测试路径env:enabled_on_pr-或$env:enabled_on_pr-ne是{ 写入输出PR生成*未*显式启用 } }
成功了。不易察觉的在正常情况下,我不会担心这个错误,因为代码仍然在运行,但是了解错误最初存在的原因非常有帮助。