我正在尝试编写一个脚本,其中一部分类似于以下内容:
function FooBarMeh ($in,$1,$2)
{
switch($in)
{
$1{'FOO'}
$2{'BAR'}
default{'MEH'}
}
}
$a='A'
$b='B'
$c=read-host
FooBarMeh ($c,$a,$b)
Run Code Online (Sandbox Code Playgroud)
FOO如果我输入A,BAR如果我输入B,并且MEH如果我输入其他内容,我希望脚本返回.
然而,这是实际发生的事情:

无论我输入什么,我都会MEH三次回到我身边.如果我完全没想到MEH- 即使我的前两个切换选项在某种程度上被打破了 - 我想我应该只看一次.我为什么要去MEH,更不用说三次了?
在Windows 7旗舰版上使用PowerShell 4.0
在PowerShell中调用函数时,不要使用括号.您应该像这样调用FooBarMeh:
FooBarMeh $c $a $b
Run Code Online (Sandbox Code Playgroud)
如果你用它调用($c, $a, $b),那么你传递的是3个元素的数组.该数组被分配给$in.
(有趣的是,开关的作用类似于循环.它会针对数组中的每个项执行.我没想到.)
但请注意,当您调用.NET函数时,请使用括号.例如:
$a.Contains('A')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |