Return "distance before" 小于参数中给出的数字时的日期和时间
Return the date and time when the "distance before" is less than the number given in the argument
我有以下 selfdriving.log
自动驾驶汽车文件:
2021.04.01., 13:14:30:78, 78, 110, 110
2021.04.01., 13:14:30:99, 79, 111, 111
2021.04.01., 13:14:31:50, 80, 111, 119
2021.04.01., 13:14:59:87, 87, 118, 117
2021.04.01., 13:16:59:87, 86, 116, 119
2021.04.01., 13:17:22:32, 75, 117, 115
2021.04.01., 13:18:50:65, 75, 96, 109
2021.04.01., 13:18:55:00, 20, 30, 57
其中每一行都有日期、时间、车辆的速度和车辆前后的测量距离。当车辆前的距离小于终端中给出的参数时,我必须 return 日期和时间。
所以对于 ./logReading.ps1 100
它应该 return:
2021.04.01. 13:18:50:65
2021.04.01. 13:18:55:00
现在,我有这个代码:
$k=$args[0]
write-host $k
get-content .\selfdriving.log | foreach{
$date,$time,$speed,$before,$after = $_.split(", ").trim()
if($before -gt $k){
write-host $date, $time
}
}
但出于某种原因,无论我在 if
语句中如何写不等式,我总是得到 logReading.ps1 100
.
的错误值
$before
是字符串类型,因此在比较之前需要将 $before
转换为 int
。
> "96" -gt 100
True
> [int]"96" -gt 100
False
所以你的最终 if
声明应该是这样的。
if([int]$before -gt $k){
Write-Host $date, $time
}
或者,您也可以在解包语句中更改类型。
$date,$time,$speed,[int]$before,$after = $_.split(", ").trim()
我有以下 selfdriving.log
自动驾驶汽车文件:
2021.04.01., 13:14:30:78, 78, 110, 110
2021.04.01., 13:14:30:99, 79, 111, 111
2021.04.01., 13:14:31:50, 80, 111, 119
2021.04.01., 13:14:59:87, 87, 118, 117
2021.04.01., 13:16:59:87, 86, 116, 119
2021.04.01., 13:17:22:32, 75, 117, 115
2021.04.01., 13:18:50:65, 75, 96, 109
2021.04.01., 13:18:55:00, 20, 30, 57
其中每一行都有日期、时间、车辆的速度和车辆前后的测量距离。当车辆前的距离小于终端中给出的参数时,我必须 return 日期和时间。
所以对于 ./logReading.ps1 100
它应该 return:
2021.04.01. 13:18:50:65
2021.04.01. 13:18:55:00
现在,我有这个代码:
$k=$args[0]
write-host $k
get-content .\selfdriving.log | foreach{
$date,$time,$speed,$before,$after = $_.split(", ").trim()
if($before -gt $k){
write-host $date, $time
}
}
但出于某种原因,无论我在 if
语句中如何写不等式,我总是得到 logReading.ps1 100
.
$before
是字符串类型,因此在比较之前需要将 $before
转换为 int
。
> "96" -gt 100
True
> [int]"96" -gt 100
False
所以你的最终 if
声明应该是这样的。
if([int]$before -gt $k){
Write-Host $date, $time
}
或者,您也可以在解包语句中更改类型。
$date,$time,$speed,[int]$before,$after = $_.split(", ").trim()