WRT this question - 通过将当前的'prompt'函数作为字符串并编写一个定义'prompt'的新.ps1文件,我得到了一些工作。
在编写新函数时,我将要添加的功能放在try/catch
块中,并将现有的提示功能写入finally
块。
一点也不理想,但它适用于v2.0。当我在v3.0中运行它时,我得到一个例外:
"Control cannot leave a finally block"
有没有办法让脚本向主机询问某个版本的行为?
感谢您的任何见解。
当前'提示'功能包括:
return " > "
我想在提示函数中添加一些功能,所以我写了一个新的temp.ps1文件。我在try/catch
块中添加了我的功能,并将现有内容包含在finally
块中
temp.ps1看起来像:
function global:prompt {
try {
pushd
}
catch {
$errors[0] | fl * -force
}
finally {
return " > "
}
}
这在v2中按预期工作,导致V3中的“控制无法离开......”错误。
答案 0 :(得分:1)
如果您打算继续使用Powershell V3,则不能在finally块中使用return语句。请参阅Windows Management Framework 3.0发行说明的第6页:(不管怎样,您不需要返回值)