我有一個代碼,它給了我 2 個值,如下所示
$pattern = '\s(-?\d .?\d )\s'
$RX_Val = [regex]::Matches($RXTX_Data[0], $pattern).Value
$TX_Val = [regex]::Matches($RXTX_Data[1], $pattern).Value
PS C:\Windows\system32> $RX_Val
-3.4
PS C:\Windows\system32> $TX_Val
-2.3
需要獲取 RX 和 TX 值應在 -1 到 -7 范圍內,如上述 2 個值在范圍內
如果值分別像 1 和 -8,那么它應該給出錯誤
我嘗試了下面的代碼,但沒有得到正確的回應
if((($RX_Val -gt -1) -and ($RX_Val -lt -7)))# -and (($TX_Val -gt '-1') -and ($TX_Val -lt '-7')))
{
Write-Host "OK"
}
else
{
Write-Host "NOT OK"
}
也試過
$RX_Val -In -1..-7
請讓我知道我在這里缺少什么
嘗試以下方式給出的解決方案
$RX_Val = [int][regex]::Matches($RXTX_Data[0], $pattern).Value
$TX_Val = [int][regex]::Matches($RXTX_Data[1], $pattern).Value
if(($RX_Val -in -1..-7) -and ($TX_Val -in -1..-7))
{
Write-Host "OK"
}
else
{
$RXTX_Data | Out-File -FilePath "E:\$file_name" -Force
}
但在以下情況下失敗,因為值被轉換為int。假設列印OK
$RX_Val=-0.1
$TX_Val=-1.5
uj5u.com熱心網友回復:
問題是您的正則運算式提取回傳的值是一個字串。您需要將其轉換為 INT 才能進行計算。
$RX_Val = [int][regex]::Matches($RX, $pattern).Value
$TX_Val = [int][regex]::Matches($TX, $pattern).Value
當然,您可以從那里使邏輯作業。作為獎勵,演員 to[int]還將處理正則運算式留下的空白。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/478625.html
標籤:电源外壳
