Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell获取日期之间的值差异_Powershell - Fatal编程技术网

Powershell获取日期之间的值差异

Powershell获取日期之间的值差异,powershell,Powershell,我正在尝试从csv中绘制一些数据。csv的结构类似于日期、状态、温度。我想做的是得到前一天和今天的温差。因此,原始csv中的数据集可能如下所示: 20200323,AK,34 20200322,AK,35 20200321,AK,42 导入csv后,我将创建一个customobject以添加一个用于温差的对象。但我不确定如何得到两天之间的温差 $tempdata = Import-Csv -Path 'tempdata.csv' | ForEach-Object { [PSCustom

我正在尝试从csv中绘制一些数据。csv的结构类似于日期、状态、温度。我想做的是得到前一天和今天的温差。因此,原始csv中的数据集可能如下所示:

20200323,AK,34
20200322,AK,35
20200321,AK,42
导入csv后,我将创建一个customobject以添加一个用于温差的对象。但我不确定如何得到两天之间的温差

$tempdata = Import-Csv -Path 'tempdata.csv' | ForEach-Object {
    [PSCustomObject]@{
        'date'          = $_.date
        'state'         = $_.state
        'temp'      = $_.temp
        'difference'      = ?
    }
}
理想情况下,我希望$tempdata中的数据如下所示,但我就是无法绞尽脑汁。谢谢你的帮助。谢谢

20200323,AK,34,-1
20200322,AK,35,-7
20200321,AK,42,$null or 0

编辑:要用我实际的写作方式来整理这篇文章:

$tempdata = @"
date,state,temp
20200323,AK,34
20200322,AK,35
20200321,AK,42
"@ | ConvertFrom-Csv


$out = for ($i=0; $i -lt $tempdata.count; $i++) {
    $n = [PSCustomObject]@{
        'date'          = $tempdata[$i].date
        'state'         = $tempdata[$i].state
        'temp'          = $tempdata[$i].temp
        'difference'    = $null
    }
    if ($tempdata[$i+1]) {
        $n.difference = $tempdata[$i].temp - $tempdata[$i+1].temp
    } 

    $n
}

$out | ConvertTo-Csv

##or 

$out | Export-Csv -NoTypeInformation out.csv

"date","state","temp","difference"
"20200323","AK","34","-1"
"20200322","AK","35","-7"
"20200321","AK","42",

如果使用for循环遍历数据,则可以使用索引以正数或负数指向数组中的下一项或上一项。if($tempdata[$i+1)是一个检查,以确保有一个“前一天”进行计算。此外,这种计算的方式意味着源文件的顺序都相同;最新->最旧。

谢谢。这正是我要找的。