想象一下这个CmdLet:
Request-RemoteAssistance [-IPAddress <string>]
Request-RemoteAssistance [-HostName <string>]
两个参数都可以从管道中获取数据。这两个参数都是字符串,因此类型解析不起作用。如果IP地址应用了正则表达式验证属性,如果出现非IP地址格式的字符串,PS会自动看到它对IPAddress无效并将其传输到HostName参数中吗?
答案 0 :(得分:1)
不,powershell无法通过正则表达式解析参数。我同意这很酷,但在v3中是不可能的。
您的选项是
-Host
,它接受IP或主机名。在内部使用switch -regex
来选择它是主机名还是IP,然后相应地进行处理。如果你不能做#1,我会推荐#3。除非您需要针对每种情况使用其他特殊参数,否则如果用户可以在一个位置使用IP或主机名,则最简单。大多数其他工具都允许使用相同的工具。