Powershell v1:是否可以将switch语句的结果赋给变量?

Tay*_*ing 5 powershell switch-statement

是否可以将switch语句的结果赋给变量.

例如,而不是:

switch ($Extension) 
    { 
        doc {$Location = "C:\Users\username\Documents\"; break} 
        exe {$Location = "C:\Users\username\Downloads\"; break}
        default {$Location = "C:\Users\username\Desktop\"}
    }
Run Code Online (Sandbox Code Playgroud)

是否可以做类似的事情:

$Location = 
{
    switch ($Extension) 
    { 
        doc {"C:\Users\username\Documents\"; break} 
        exe {"C:\Users\username\Downloads\"; break}
        default {"C:\Users\username\Desktop\"}
    }
}
Run Code Online (Sandbox Code Playgroud)

尝试上述结果将$ location包含整个代码块作为String.

Ste*_*ski 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
Run Code Online (Sandbox Code Playgroud)