如果不为空则跳转到 PS 中的某处
If not empty jump to somewhere in PS
你好,早上好(:
我想看看我是否能够跳转到 PS 中的某个地方而不用将其包装在 ScriptBlock 中;见鬼,我什至可以接受,但是,我只是不确定该怎么做。
我想做的是:将参数集添加到函数中,如果向参数提供了某些内容-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"}
}
这样的事情有可能吗?
我用谷歌搜索了几个类似的问题,这些问题指向调用运算符&
(如上所示),and/or,一个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
}
你好,早上好(:
我想看看我是否能够跳转到 PS 中的某个地方而不用将其包装在 ScriptBlock 中;见鬼,我什至可以接受,但是,我只是不确定该怎么做。
我想做的是:将参数集添加到函数中,如果向参数提供了某些内容-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"}
}
这样的事情有可能吗?
我用谷歌搜索了几个类似的问题,这些问题指向调用运算符&
(如上所示),and/or,一个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
}