PowerShell函数内字符串相等运算符无法正常工作问题求助
PowerShell函数相等判断不符合预期的问题解决
你的问题出在函数调用的参数传递方式上,而非相等运算符-eq本身。
在PowerShell中,调用函数时不需要用括号包裹参数,也不能用逗号分隔多个参数——这种写法会被解析成将一个数组作为单个参数传入函数。你的MatchCheck("test", "test")实际上是把数组@("test", "test")赋值给了第一个参数$input_text_1,而第二个参数$input_text_2会被设为$null。此时$input_text_1 -eq $input_text_2就是数组和$null比较,结果自然是$false。
修正后的调用方式
直接用空格分隔参数即可:
MatchCheck "test" "test"
优化后的函数(可选)
其实不需要写冗余的if/else,直接返回比较结果更简洁:
function MatchCheck($input_text_1, $input_text_2) { return $input_text_1 -eq $input_text_2 } MatchCheck "test" "test"
这样调用后会正确返回$true。
内容的提问来源于stack exchange,提问作者dustmole
相关产品推荐
相关产品推荐

