PowerShell小技巧之使用New-Module命令动态创建对象

 更新时间:2014年09月15日 10:05:13   投稿:hebedich  
这篇文章主要介绍了在PowerShell中使用New-Module命令动态创建对象,比New-Object高大上很多了吧

还记得当年怎样在PowerShell中动态创建对象吧?今天要分享的方法不敢自诩高大上,但也足以让New-Object感到汗颜。

背景
在System Center Operation Manager中有个Management Pack,叫做:“Microsoft.SystemCenter.OperationsManager.SummaryDashboard”。在该MP中有个Discovery叫做:“Collect agent configurations”。该工作流中用到了一段脚本,其中使用了New-Module命令。

New-Module就是在内存中动态生成一个Module组件。用它来自定义对象有点大材小用了。

演习

$PLA = New-Module {
 $名称 = ‘中国人民解放军'
 $军区 = @('沈阳军区','北京军区','济南军区','南京军区','广州军区','成都军区','兰州军区')
 $兵种 = @('海军','空军','第二炮兵')
 
 function 保卫党
 {
  return $true
 }
 
 function 保卫人民
 {
 return $null
 }
 
 function 抗洪抢险
 {
 return $true
 }
 
 function 抗震救灾
 {
 return $true
 }
 
 function 确认兵种
 {
 param($某兵种)
 if ($this.兵种.Contains($某兵种)){
  return $true
  }
 return $false
 }
 Export-ModuleMember -Variable * -Function *
 
} -AsCustomObject


PS> $PLA

兵种                      军区                     名称                     
--                      --                     --                     
{海军, 空军, 第二炮兵}                {沈阳军区, 北京军区, 济南军区, 南京军区...}         中国人民解放军                  

PS> $PLA.确认兵种(‘陆军')
False
PS> $PLA | Get-Member


  TypeName: System.Management.Automation.PSCustomObject

Name    MemberType  Definition            
----    ----------  ----------            
Equals   Method    bool Equals(System.Object obj)  
GetHashCode Method    int GetHashCode()         
GetType   Method    type GetType()          
ToString  Method    string ToString()         
兵种     NoteProperty System.Object[] 兵种=System.Object[]
军区     NoteProperty System.Object[] 军区=System.Object[]
名称     NoteProperty System.String 名称=中国人民解放军     
保卫人民    ScriptMethod System.Object 保卫人民();       
保卫党     ScriptMethod System.Object 保卫党();       
抗洪抢险    ScriptMethod System.Object 抗洪抢险();       
抗震救灾    ScriptMethod System.Object 抗震救灾();

相关文章

  • Windows Powershell使用哈希表

    Windows Powershell使用哈希表

    哈希表(hashtable)有时候也被称为:“关联数组”或“字典”。哈希表可以称得上是计算机科学中最重要的数据结构之一,例如:在计算机操作系统、数据库系统、编译器、加密算法等计算机底层程序中,哈希表都发挥着重要的作用。
    2014-09-09
  • PowerShell实现参数互斥示例

    PowerShell实现参数互斥示例

    这篇文章主要介绍了PowerShell实现参数互斥示例,本文直接给出示例代码,需要的朋友可以参考下
    2015-06-06
  • PowerShell批量安装msi后辍软件的方法

    PowerShell批量安装msi后辍软件的方法

    这篇文章主要介绍了PowerShell批量安装msi后辍软件的方法,需要的朋友可以参考下
    2014-05-05
  • Windows Powershell 执行外部命令

    Windows Powershell 执行外部命令

    Windows PowerShell 在使用方面与 Cmd.exe 并无多大不同,只是 Windows PowerShell 的功能更为强大。与 Cmd.exe 一样,Windows PowerShell 具有内置的脚本编写语言,不过它比 Cmd.exe 原始的批处理语言更为灵活。Cmd.exe 做到的事情,Windows PowerShell 几乎都能做到。
    2014-08-08
  • PowerShell实现在多个文件中检索关键字功能

    PowerShell实现在多个文件中检索关键字功能

    这篇文章主要介绍了PowerShell实现在多个文件中检索关键字功能,本文使用Select-String解决这了个需求,需要的朋友可以参考下
    2015-01-01
  • PowerShell实现统计函数嵌套深度

    PowerShell实现统计函数嵌套深度

    这篇文章主要介绍了PowerShell实现统计函数嵌套深度,本文分享一个函数,可以实现统计脚本执行的嵌套层次,需要的朋友可以参考下
    2015-06-06
  • Powershell小技巧之获取字符串的行数

    Powershell小技巧之获取字符串的行数

    这篇文章主要介绍了Powershell获取字符串的行数的小技巧,只要懂得了它的工作原理就能在多种场合使用。需要的朋友可以参考下
    2014-09-09
  • Powershell小技巧之用变量累积记录错误

    Powershell小技巧之用变量累积记录错误

    这篇文章主要介绍了Powershell用变量累积记录错误的小技巧,非常的简单实用,有需要的朋友可以参考下
    2014-10-10
  • PowerShell把文件删除到回收站的方法

    PowerShell把文件删除到回收站的方法

    这篇文章主要介绍了PowerShell把文件删除到回收站的方法,需要的朋友可以参考下
    2014-06-06
  • Powershell小技巧之等待输入一个按键

    Powershell小技巧之等待输入一个按键

    本文主要介绍了实现当一个脚本使用PS控制台启动时,你可能想要在中间穿插一个“输入任意键”的方法,非常简单实用,有需要的朋友可以参考下
    2014-09-09

最新评论