форматировать числа до 4 цифр в Azure Pipline - PullRequest
1 голос
/ 06 января 2020

Я пытаюсь отформатировать 4 цифры в Azure конвейере (YAML), но он не работает, кто-то помогает?

У меня есть эта переменная >> serialNumber: 2

Я использовал следующий синтаксис yaml:

formatnumber: $[format('{0:D4}', variables.serialNumber)]

formatnumber: $[format('{0:0000}', variables.serialNumber)]

formatnumber: $[format('{0:####}', variables.serialNumber)]

Я хочу преобразовать число 2 в 0002 с форматом, но я получаю следующую ошибку:

Произошла ошибка при загрузке YAML построить трубопровод. Спецификаторы формата 'D4' недопустимы для объектов типа 'String'

1 Ответ

0 голосов
/ 07 января 2020

Указанный выше форматер не работает, потому что тип значения, возвращаемого variables.serialNumber, является строкой, а не типом int.

Существует обходной путь для достижения этой цели. Вы можете добавить задачу powershell для форматирования числа. Вы можете проверить пример ниже.

trigger:
- master
variables:
  number: 2
pool:
  vmImage: 'ubuntu-latest'
steps:
- powershell: |
    $number = $(number)
    $format = "{0:0000}" -f $number
    echo "##vso[task.setvariable variable=formatnumber]$format"

- powershell: echo "$(formatnumber)"

Выше сценария в задаче powershell форматирует переменную number, а устанавливает форматированное число в переменную 'formatnumber'. Тогда следующая задача может ссылаться на отформатированное число по $(formatnumber)

...