我有一些 Powershell 代码,如下所示:
if($item_1 -lt 2000000){
...
}
if($item_2 -lt 10000){
...
}
if($item_3 -gt 10){
...
}
if($item_4 -gt 100){
...
}
我想把它重构成一个像
function doComparison( $item, $operator, $value)
但我不确定如何将小于和大于运算符传递给函数。一种解决方案是将运算符作为文本传递(例如“-lt”),然后在函数中使用 if 语句,但这并不优雅。有一个更好的方法吗?
我接受了“user2460798”的回复,因为“Invoke-Expression”是我以前不知道的概念(即能够“即时组装代码”)。
我的代码现在看起来就像我最初希望的那样:
checkLine $item_1 lt 2000000
checkLine $item_2 lt 10000
checkLine $item_3 gt 10
checkLine $item_4 gt 100
谢谢大家的回复!