是否可以将switch语句的结果赋给变量。
例如,而不是:
switch ($Extension)
{
doc {$Location = "C:\Users\username\Documents\"; break}
exe {$Location = "C:\Users\username\Downloads\"; break}
default {$Location = "C:\Users\username\Desktop\"}
}
是否可以做类似的事情:
$Location =
{
switch ($Extension)
{
doc {"C:\Users\username\Documents\"; break}
exe {"C:\Users\username\Downloads\"; break}
default {"C:\Users\username\Desktop\"}
}
}
尝试上面的结果是$ location包含整个代码块作为字符串。
答案 0 :(得分:7)
对于V1,我将switch语句包装在一个函数中。
function Get-DocumentLocation($Extension)
{
switch ($Extension)
{
doc {"C:\Users\username\Documents\"; break}
exe {"C:\Users\username\Downloads\"; break}
default {"C:\Users\username\Desktop\"}
}
}
$Location = Get-DocumentLocation $extension
答案 1 :(得分:2)
以下是否有效?
$Location = (switch ($Extension) {
doc {"C:\Users\username\Documents\"; break}
exe {"C:\Users\username\Downloads\"; break}
default {"C:\Users\username\Desktop\"}
})
或者
$Location = $(switch ($Extension) {
doc {"C:\Users\username\Documents\"; break}
exe {"C:\Users\username\Downloads\"; break}
default {"C:\Users\username\Desktop\"}
})
现在不要让v1在这里进行测试,但我认为这可行。