微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果不是空的跳转到PS中的某个地方

如何解决如果不是空的跳转到PS中的某个地方

你好,早上好(:

我想看看是否能够在不将其包装在 ScriptBlock 中的情况下跳转到 PS 中的某个位置;该死,我什至可以接受,但是,我不确定如何去做。

我想要做的是:向函数添加参数集,如果向参数 -GrpSelec 提供了某些内容(我知道立即更改它),然后跳过脚本的其余部分并继续到我的 $swap 变量以执行切换。

$Group1 = @("1st Group","2nd Group")
$Group2 = @("3rd Group","4th Group")

Function Test-Group{
    param(
        [validateset("Group1","group2")]
        [array]$GrpSelec)
if($GrpSelec){ &$swap }

$AllGroups = @("Group1","Group2")

for($i=0; $i -lt $AllGroups.Count; $i++){
    Write-Host "$($i): $($AllGroups[$i])"}

$GrpSelec = Read-Host -Prompt "Select Group(s)" 
$GrpSelec = $GrpSelec -split " "
$swap = Switch -Exact ($GrpSelec){            
            {1 -or "Group1"}  {"$Group1"}
            {2 -or "Group2"}  {"$Group2"}
            }

Foreach($Group in $swap){
    "$Group"}
        
    }

这样的事情有可能吗?

我在谷歌上搜索了几个类似的问题,这些问题指向调用运算符 &(如上所示)和/或 foreach,这绝对不是同一个哈哈。

放轻松,我只是在试验(:

解决方法

简单的 if 语句怎么样?

function Test-Group {
  param(
    [string[]]$GrpSelec
  )

  if(!$PSBoundParameters.ContainsKey('GrpSelect')){
    # no argument was passed to -GrpSelec,# populate $GrpSelec in here before proceeding with the rest of the script
  }

  # Now that $GrpSelec has been populated,let's do the work
  $swap = Switch -Exact ($GrpSelec){            
            {1 -or "Group1"}  {"$Group1"}
            {2 -or "Group2"}  {"$Group2"}
          }

  # rest of function
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。