Board logo

标题: [转载代码] [PowerShell每日技巧]PowerShell 4.0中的动态方法(20131105) [打印本页]

作者: DAIC    时间: 2013-11-15 09:33     标题: [PowerShell每日技巧]PowerShell 4.0中的动态方法(20131105)

Beginning with PowerShell 4.0, method names may come from variables. Here's a simple example:
  1. $method = 'ToUpper'
  2. 'Hello'.$method()
复制代码
This can be useful when the method you want to use depends on something a script would need to figure out first.
  1. function Convert-Text
  2. {
  3.   param
  4.   (
  5.     [Parameter(Mandatory)]
  6.     $Text,
  7.     [Switch]$ToUpper
  8.   )
  9.   if ($ToUpper)
  10.   {
  11.     $method = 'ToUpper'
  12.   }
  13.   else
  14.   {
  15.     $method = 'ToLower'
  16.   }
  17.   $text.$method()
  18. }
复制代码
And this is how a user would call the function:

PS> Convert-Text 'Hello'
hello

PS> Convert-Text 'Hello' -ToUpper
HELLO


By default, the function would convert text to lower case. When the switch parameter -ToUpper is specified, it converts the text to upper case instead. Thanks to dynamic methods, the function won't need separate code blocks for this.

http://powershell.com/cs/blogs/tips/archive/2013/11/05/dynamic-methods-in-powershell-4.aspx




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2