在编写自定义PowerShell主机时,可以读取主机(即PSHostUserInterface.ReadLine)被重载以返回对象而不是字符串?
发布于 2011-01-04 02:23:21
当你想让用户给你一个特定的类型时,通常最好让PowerShell来进行类型转换。例如:
function get-duration {
param(
[Parameter(Mandatory=$true)]
[TimeSpan]$HowLongDidItLast
)
return $HowLongDidItLast
}或
[TimeSpan](Read-Host "How long did it last?")将返回一个timespan对象,假设用户输入了类似于数字或"2:30“的内容...
然而,在Excel.Range的情况下...它是一个接口,所以PowerShell不会处理它,您也不能直接提示输入它。
作为一般规则,我会避免在PowerShell cmdlet或函数中使用接口作为参数类型,因为缺少强制性...
发布于 2011-01-04 00:00:07
你到底想要实现什么?例如,你希望read-host返回什么?
您不能通过PSHost*接口重载read-host;但是,您可以通过在您的自定义主机中可用的read-host cmdlet上创建一个proxy function来完成您想要的操作。
https://stackoverflow.com/questions/4585782
复制相似问题