如何在 powershell 函数中传递参数

如何在 powershell 函数中传递参数

为什么此代码不起作用,您必须如何传递参数?我做错了什么:

cls

function __main{
   param(
         $apiEndpoint = $pathApi   
    )

   write-host $apiEndpoint

}

__main -pathApi"/ad/user/id"

输出:

.

预期输出:

/ad/user/id

答案1

在 Powershell 中创建函数并使用 param 代码时,params 将定义您可以使用哪些参数。

在您的代码中,您有以下内容:

   param(
            $apiHost = '........',
            $apiEndpoint = $pathApi,
            $requestMethod = 'GET'
    )

这意味着,您的函数__Main现在有 3 个参数-ApiHost,,-ApiEndpoint-requestMethod

您没有指定$pathApi,因此您的函数没有获取传递给它的参数,因此它是空的。

但是,如果您将请求更改为以下内容:

__main -apiEndpoint "/ad/user/id"

它将按预期开始工作。

或者,按如下方式更改 param 函数:

   param(
            $apiHost = '........',
            $pathApi = '',
            $requestMethod = 'GET'
    )

    $apiEndpoint = $pathApi

请记住,使用 restapi 时,通常需要在路径末尾添加 /。如果不这样做,POST 可能无法正常工作。

相关内容