PowerShell字符串变量替换异常:函数调用方式错误所致
PowerShell函数调用错误引发变量替换异常
我写了一个PowerShell函数getUserID,用来生成API请求所需的查询语句:
function getUserID ([String]$loginName, [String] $firstName, [String] $lastName, [String] $employeeId) { $queryText = "loginid:$loginName vorname:$firstName nachname:$lastname personalnummer:$employeeId" $requestData = (@{ "query" = "$queryText" } | ConvertTo-Json) return $requestData }
用以下方式调用函数时:
$test = getUserID("blibla", "Bli", "Bla", "34654") $test
预期输出为:
{ "query": "loginid:blibla vorname:Bli nachname:Bla personalnummer:34654" }
但实际输出却是:
{ "query": "loginid:blibla Bli Bla 34654 vorname: nachname: personalnummer:" }
一开始无法理解变量替换为何在首次替换后出现异常,排查后发现问题源于函数调用方式错误。PowerShell中调用函数时不能使用括号加逗号分隔参数,正确的调用方式应为用空格分隔参数:
getUserID "blibla" "Bli" "Bla" "34654"
内容的提问来源于stack exchange,提问作者Lukas
相关产品推荐
相关产品推荐

