Wie schreibe ich ein mehrzeiliges Inline-Powershell-Skript in eine Azure Pipelines PowerShell-Aufgabe?

8

Mit dem Yaml-Schema für eine Powershell-Aufgabe können Sie targetType: 'inline' auswählen und ein Skript in der script: input definieren.

Aber was ist das richtige Format, um ein Skript mit mehr als einer Zeile zu schreiben?

In den Dokumenten wird nicht angegeben, wie und die Verwendung einer Pipe in Zeile 1 (wie für die Befehlszeilenaufgabe angegeben) funktioniert nicht.

Ola Eldøy
quelle

Antworten:

8

Sie können das Pipe-Zeichen (das Literal Block Scalar Indicator ) verwenden, um einen mehrzeiligen Textblock mit Zeilenumbruchzeichen wie Ihrem Inline-Skript zu definieren. zum Beispiel so:

- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      # Write your PowerShell commands here.
      Write-Host "Hello world"
      Write-Host "Hullo clouds"
      Write-Host "Hullo sky"
Vince Bowdren
quelle
0

Es ist möglich, PowerShell-Befehle mit einem Semikolon zu verketten . Schreiben Sie also tatsächlich mehrere Befehle in eine Zeile, die durch ein Semikolon getrennt sind.

(Beachten Sie das Zeilenlimit von 5000 Zeichen in Azure-Pipelines.)

Ola Eldøy
quelle
Vielen Dank, dass Sie die Lösung geteilt haben. Sie können sie als Antwort akzeptieren. Dies kann für andere Community-Mitglieder, die diesen Thread lesen, von Vorteil sein.
Andy Li-MSFT
0

Es ist möglich, die Powershell-Aufgabe einfach so zu verwenden:

# Job definition etc
steps:
  - powershell: |
      Write-Host A
      Write-Host B
      Write-Host C
  - task: AzureRmWebAppDeployment@4
      # The rest of this task is omitted.

Wenn Sie powershellanstelle des task: PowerShell@2Zieltyps standardmäßig verwenden, müssen inlineSie ihn nicht erneut festlegen.

Martin Brown
quelle