从Jenkins(在Linux机器上)运行和在Windows机器上本地运行时,Powershell脚本的输出差异

时间:2020-01-30 10:11:47

标签: powershell jenkins jenkins-pipeline

Powershell运行(在Linux计算机上)和在Windows计算机本地运行时,Jenkins脚本的不同输出。

产生的输出是不同的,我不知道为什么。 Jenkins是否有可能做与本地计算机不同的事情?

该脚本位于文件Script.ps1中,其内部Jenkins是“执行Windows批处理命令”,该命令是powershell -File C:\Folder\Script.ps1

在此方面的任何帮助将非常有价值,谢谢!

P.S,相差1 ms,这意味着输出延迟了1 ms。为什么这样?谢谢。

输出是这样的:

Windows Powershell的输出为:

LastTrade + 1/29/2020 12:00:28 AM + 81888815 + 1/29/2020 12:00:28 AM FirstTrade + 1/28/2020 11:59:53 PM + 81888716 1/29/2020 12:00:00 AM 最后的最终交易+ @ {time = 2020-01-28T23:59:58.476Z; trade_id = 81888750;价格= 9394.50000000;大小= 0.06500000; side = buy} + 2020年1月28日11:59:58 PM

但是詹金斯的输出是:

LastTrade + 1/29/2020 12:00:28 AM + 81888813 + 1/29/2020 12:00:28 AM FirstTrade + 1/28/2020 11:59:53 PM + 81888721 1/29/2020 12:00:00 AM 最后的最终交易+ @ {time = 2020-01-28T23:59:56.478Z; trade_id = 81888727;价格= 9404.90000000;大小= 0.05272805; side = sell} + 2020年1月28日11:59:56 PM

脚本是这样的:

   $SubRequest = "https://api.pro.coinbase.com/products/BTC-USD/trades?after=81888816&limit=100"        
    $SubResponse = Invoke-WebRequest $SubRequest -UseBasicParsing|
    ConvertFrom-Json 
    $SubLastTradeObject = ($SubResponse | Sort-object time, [int]tradeid -Descending | Select-Object -First 1)
    $SubFirstTradeObject = ($SubResponse | Sort-object time, [int]tradeid | Select-Object -First 1)
    $SubLastTradeTime = ([datetime]$SubLastTradeObject.time).ToUniversalTime()
    $SubFirstTradeTime = ([datetime]$SubFirstTradeObject.time).ToUniversalTime()
    Write-Host "LastTrade" +  $SubLastTradeTime + $SubLastTradeObject.Trade_id + $SubLastTradeTime
    Write-Host "FirstTrade" + $SubFirstTradeTime + $SubFirstTradeObject.Trade_id
    $CurrentDate = $(Get-Date).ToUniversalTime().ToShortDateString()
    $LastTradeDateBorder = [datetime]"$CurrentDate 00:00:00.000" #current date's 12:00:00 AM
    Write-Host  $LastTradeDateBorder
    if(($SubLastTradeTime -gt $LastTradeDateBorder) -and ($SubFirstTradeTime -lt $LastTradeDateBorder)) 
    {
        #Write-Host $($SubResponse | Select-Object -Property time,trade_id,price,size,side)
        $finalTrade = ($SubResponse | Where-Object -FilterScript {([datetime]$_.time).ToUniversalTime() -lt $LastTradeDateBorder} | Sort-object  tradeId -Descending | Select-Object -First 1)                        
        Write-Host "Last Final Trade " + $finalTrade + $(([datetime]$finalTrade.time).ToUniversalTime())
    }

0 个答案:

没有答案
相关问题