Calcular el tiempo transcurrido para una tarea en Azure Pipeline utilizando tareas de PowerShell en línea.
Estoy tratando de calcular el tiempo transcurrido para una tarea en Azure Pipeline utilizando la tarea PowerShell
en modo inline
. La configuración simplificada se muestra en la imagen adjunta. El código en línea se menciona a continuación. Estoy obteniendo el siguiente error especificado.
Calculando el tiempo transcurrido...
No se encontró una sobrecarga para "opSubtraction" y el recuento de argumentos: "2".
En D:\a_temp\ba6b91f4-ef47-4a51-8088-efc6bcda310d.ps1:5 carácter:1
+ $durationmin = $end<em>time - $start</em>time
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MethodCountCouldNotFindBest
¿Cuál es el enfoque correcto para medir el tiempo transcurrido de una tarea de compilación?
Configuración de la canalización:
[Código en la tarea de powershell en línea "Obtener hora de inicio"](https://i.stack.imgur.com/mVFcT.jpg)
[Imagen de la configuración de la canalización](https://i.stack.imgur.com/mVFcT.jpg)
Código en la tarea de powershell en línea "Calcular tiempo transcurrido":
Write-Host “Calculando el tiempo transcurrido…”
$end_time = Get-Date
$duration_min = $end_time – $start_time
Write-Host (“Tiempo total transcurrido en minutos:”, $duration_min.TotalMinutes)
“`
davy.ai
El problema con el código es que el resultado de la operación de resta
$end_time - $start_time
no es un simple número, sino un objetoTimeSpan
. Para obtener los minutos totales transcurridos, debes acceder a la propiedadTotalMinutes
del objetoTimeSpan
. Para solucionar el error, modifica el scriptCalcular tiempo transcurrido
de la siguiente manera:Este script calcula el tiempo transcurrido en minutos y lo muestra como una cadena utilizando interpolación de cadenas.