我有以下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
每行的位置都有日期、時間、車輛的速度以及車輛前后的測量距離。當車輛前的距離小于終端中給出的引數時,我必須回傳日期和時間。所以./logReading.ps1 100它應該回傳:
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。
uj5u.com熱心網友回復:
$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()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/370382.html
