首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Noob问题: powershell中自定义函数的多个参数

Noob问题: powershell中自定义函数的多个参数
EN

Stack Overflow用户
提问于 2021-02-24 16:06:25
回答 1查看 111关注 0票数 0

我试图简单地将两个参数传递给powershell函数。seccond参数$args在函数中始终为空。我遗漏了什么?

代码语言:javascript
复制
$t= "wi-fi Adapter"

if (multilike $t "*wi-fi*,*wireless*,*wan miniport*" ) {
    Write-Host "True"
}

function multilike($text, $args) {
    foreach ($arg in $args.split) {
        if ($text -like $arg) {return $true}
    }
    return $false
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-24 16:14:20

有两件事:

不要使用$args

$args自动变量,使用它作为声明的参数可能会导致意外行为。

记住调用Split()

$someString.Split将发出String.Split()方法重载的方法签名-为了执行该方法,需要提供(n空)参数列表:

代码语言:javascript
复制
function multilike($text, $patterns) {
    foreach($pattern in $patterns.Split())
    { # ...

由于您希望接受一个或多个字符串作为第二个参数参数,因此将其声明为字符串数组可能会有好处:

代码语言:javascript
复制
function multilike {
  param(
    [string]$text, 
    [string[]]$patterns
  )
    foreach($pattern in $patterns) # no need to .Split() any longer
    { # ...

然后打电话说:

代码语言:javascript
复制
multilike $t *wi-fi*,*wireless*,"*wan miniport*"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66354514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档