gpt4 book ai didi

powershell - 我的切换功能出了什么问题

转载 作者:行者123 更新时间:2023-12-02 23:04:28 25 4
gpt4 key购买 nike

我正在尝试编写一个脚本,其中部分内容类似于以下内容:

function FooBarMeh ($in,$1,$2)
{
switch($in)
{
$1{'FOO'}
$2{'BAR'}
default{'MEH'}
}
}
$a='A'
$b='B'
$c=read-host
FooBarMeh ($c,$a,$b)

如果我输入 A,我希望脚本返回 FOO,如果我输入 B,则返回 BAR,并且MEH 如果我输入其他内容。

然而,这就是实际发生的情况:

enter image description here

无论我输入什么,MEH都会返回给我三次。如果我完全期待 MEH - 即使我的前两个切换选项不知何故被破坏 - 我认为我应该只看到它一次。为什么我会得到MEH,更不用说三次了?

在 Windows 7 Ultimate 上使用 PowerShell 4.0

最佳答案

在 PowerShell 中调用函数时不使用括号。您应该像这样调用 FooBarMeh:

FooBarMeh $c $a $b

如果您使用 ($c, $a, $b) 调用它,那么您将传递一个包含 3 个元素的数组。该数组被分配给 $in

(有趣的是,开关的作用就像一个循环。它会针对数组中的每个项目执行。我没想到会这样。)

但请注意,当您调用 .NET 函数时,您确实使用了括号。例如:

$a.Contains('A')

关于powershell - 我的切换功能出了什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20172781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com