Windows Powershell对象=属性+方法

在现实世界中,你可能已经了解对象就是那些能够摸到的东西。Powershell中的对象和现实生活很相似。例如要在现实生活中描述一把小刀。我们可能会分两方面描述它
属性:一把小刀拥有一些特殊的属性,比如它的颜色、制造商、大小、刀片数。这个对象是红色的,重55克,有3个刀片,ABC公司生产的。因此属性描述了一个对象是什么。
方法:可以使用这个对象做什么,比如切东西、当螺丝钉用、开啤酒盖。一个对象能干什么就属于这个对象的方法。

创建对象

通过New-Object可以创建一个对象,甚至可以创建一个虚拟的小刀,但是第一步需要创建一个空对象。空对象什么都没有,如果调用它,不会返回任何东西。

代码如下:

PS C:Powershell> $pocketknife=New-Object object
PS C:Powershell> $pocketknife
System.Object

增加属性

接下来描述这个对象是什么

代码如下:

PS C:Powershell> Add-Member -InputObject $pocketknife -Name Color -Value "Red"
-MemberType NoteProperty
PS C:Powershell> $pocketknife

Color
-----
Red

PS C:Powershell> Add-Member -InputObject $pocketknife -Name Weight -Value "55"
-MemberType NoteProperty
PS C:Powershell> $pocketknife | Add-Member NoteProperty Blades 3
PS C:Powershell> $pocketknife | Add-Member NoteProperty Manufacturer ABC
PS C:Powershell> $pocketknife

Color Weight Blades Manufacturer
----- ------ ------ ------------
Red   55          3 ABC

增加方法

给一个对象增加了属性后,这个对象就有形状了,但是它仍然不能做任何事,要想它做事,必须给它增加方法。同样使用Add-Member,不过-memberType 选项使用ScriptMethod。

代码如下:

# 增加一个新方法:
Add-Member -memberType ScriptMethod -In $pocketknife `
-name cut -Value { "I'm whittling now" }
# 指定参数类型增加一个新方法:
Add-Member -in $pocketknife ScriptMethod screw { "Phew...it's in!" }
#直接通过管道增加一个新方法:
$pocketknife | Add-Member ScriptMethod corkscrew { "Pop! Cheers!" }

方法添加成功后就可以调用了

代码如下:

PS C:Powershell> $pocketknife.cut()
I'm whittling now
PS C:Powershell> $pocketknife.screw()
Phew...it's in!
PS C:Powershell> $pocketknife.corkscrew()
Pop! Cheers!

在调用方法时如果没有使用圆括号,方法不会执行,但是可以返回方法的基本信息。

代码如下:

PS C:Powershell> $pocketknife.corkscrew

Script                      :  "Pop! Cheers!"
OverloadDefinitions : {System.Object corkscrew();}
MemberType           : ScriptMethod
TypeNameOfValue  : System.Object
Value                      : System.Object corkscrew();
Name                     : corkscrew
IsInstance               : True

到目前为止一个虚拟的小刀对象就创建完成了,一个对象包含数据(属性)和动作(方法)。

(0)

相关推荐

  • 使用批处理for命令清除事件查看器所有Windows EventLog日志

    以前装完系统后要做个Ghost,为了达到完美,每次做Ghost前都会手动清除 事件查看器所有Windows EventLog日志. 后来使用了Windows 2008 r2/Win7后,这事变的复杂多了,所以也就没管了. 再后来有同事问到如何把他们全部清除,因为一个一个清,在Microsoft一级有很多目录,要想完全清除得半小时,并且清除后又有了,不实用. 再到今天,我在玩Hyper-V时,总看到一堆Error,鉴于之前给公司做的持续交付里,批处理大显身手,所以想应该可以使用批处理来实现, Go

  • 使用批处理清除事件查看器所有Windows EventLog日志的代码

    以前装完系统后要做个Ghost,为了达到完美,每次做Ghost前都会手动清除 事件查看器所有Windows EventLog日志. 后来使用了Windows 2008 r2/Win7后,这事变的复杂多了,所以也就没管了. 再后来有同事问到如何把他们全部清除,因为一个一个清,在Microsoft一级有很多目录,要想完全清除得半小时,并且清除后又有了,不实用. 再到今天,我在玩Hyper-V时,总看到一堆Error,鉴于之前给公司做的持续交付里,批处理大显身手,所以想应该可以使用批处理来实现, Go

  • Powershell使用WINDOWS事件日志记录程序日志

    通常,人们使用基于文件的日志.这样做没有什么问题,但是使用WINDOWS提供系统内部日志会更加简单. 如果你有管理权限,你可以随时创建一个新的日志: 复制代码 代码如下: New-EventLog -LogName myLog -Source JobDue, JobDone, Remark 该命令创造了一个名为Mylog的日志,这个事件源自"JobDUE","JobDone"和"Remark".管理员权限只是为了创造日志,剩下的操作其它用户都可以

  • Windows键盘事件权限提升漏洞

    受影响系统: Microsoft Windows XP SP2 Microsoft Windows XP SP1 Microsoft Windows XP Microsoft Windows Server 2003 SP1 Microsoft Windows Server 2003 Microsoft Windows 2000SP4 Microsoft Windows 2000SP3 Microsoft Windows 2000SP2 Microsoft Windows 2000SP1 Micr

  • Windows Powershell属性:描述对象是什么

    属性可以描述一个对象,对象的属性可以被Powershell自动转换成文本,并且输出到控制台.因此可以通过这种方法查看任何对象,例如$host: 复制代码 代码如下: PS C:Powershell> $host Name              : ConsoleHost Version           : 2.0 InstanceId            : 7fefa1fa-fb2e-47c7-a867-c13b123da5c2 UI                : System.

  • JavaScript中Window对象的属性及事件

    Window 对象 Window 对象表示浏览器中打开的窗口. 如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象. 注释:没有应用于 window 对象的公开标准,不过所有浏览器都支持该对象. windows对象属性 属性 描述 closed 返回窗口是否已被关闭. defaultStatus 设置或返回窗口状态栏中的默认文本. document 对 Document 对象的只读引用.请

  • C#3.0使用EventLog类写Windows事件日志的方法

    本文实例讲述了C#3.0使用EventLog类写Windows事件日志的方法.分享给大家供大家参考.具体如下: 在程序中经常需要将指定的信息(包括异常信息和正常处理信息)写到日志中.在C#3.0中可以使用EventLog类将各种信 息直接写入Windows日志.EventLog类在System.Diagnostics命名空间中.我们可以在"管理工具" > "事件查看器"中 可以查看我们写入的Windows日志 下面是一个使用EventLog类向应用程序(App

  • Windows Powershell对象=属性+方法

    在现实世界中,你可能已经了解对象就是那些能够摸到的东西.Powershell中的对象和现实生活很相似.例如要在现实生活中描述一把小刀.我们可能会分两方面描述它 属性:一把小刀拥有一些特殊的属性,比如它的颜色.制造商.大小.刀片数.这个对象是红色的,重55克,有3个刀片,ABC公司生产的.因此属性描述了一个对象是什么. 方法:可以使用这个对象做什么,比如切东西.当螺丝钉用.开啤酒盖.一个对象能干什么就属于这个对象的方法. 创建对象 通过New-Object可以创建一个对象,甚至可以创建一个虚拟的小

  • Vue之Vue.set动态新增对象属性方法

    当我们给一个比如props中,或者data中被观测的对象添加一个新的属性的时候,不能直接添加,必须使用Vue.set方法 Vue.set方法用来新增对象的属性.如果要增加属性的对象是响应式的,那该方法可以确保属性被创建后也是响应式的,同时触发视图更新 这里本来food对象是没有count属性的,我们要给其添加count属性就必须使用Vue.set方法,而不能写成'this.food.count = 1' 以上这篇Vue之Vue.set动态新增对象属性方法就是小编分享给大家的全部内容了,希望能给大

  • Windows Powershell对象转换成文本

    Out-Default可以将对象转换成可视的文本.事实上Out-Default会首先调用Format-Table,将更多的属性默认隐藏.再调用Out-Host将结果输出在控制台上.因此下面的三组命令执行结果是相同的. ls ls | Format-Table | Out-Host ls | Out-Default 显示隐藏的对象属性 要查看对象结果的所有属性,可是使用 ls | Format-Table * 这样因为属性和属性的内容太多可能不会显示完全,可以使用文本换行参数 ls | Forma

  • javascript入门·对象属性方法大总结

    今天是我们js入门系列演示的最后一节了(暂时我是这样计划的),但是请朋友们记住,前面的实例你都很熟悉了的话也不代表我们就懂了JS,甚至连入门我们都不得不承认我们只是站在门槛上,还没有进去呢,那你可能要问,为什么要匆匆结束呢?答案很简单,我们的最终目标是AJAX/Atlas,在以后的入门教程中我们还会接触大量的JS的东西,而我这个懒人繁冗的注释一定不会让你失望的,所以更多JS我们以后继续学习,下面我们必须把JS最重要的东西--<对象>的方法和属性都熟悉下,因为这可是非常重要的,而这篇Post你大

  • Javascript对象属性方法汇总

    数组(Array):系列元素的有序集合 属性: length:用于获取数组元素的个数,既最大下标加 1 方法: sort(function):在未指定排序号的情况下,按照元素的字母顺序排列,如果不是字符串类型则转换成字符串,在排序; reverse():颠倒数组中元素的顺序: concat(array1,arrayn):用于将N个数组合并到array1数组中: join(string):用于将数组中元素合并为字符串,string为分隔符,如省略参数,则直接合并,不加分隔: slice(start

  • Python类及获取对象属性方法解析

    1.类外面添加对象属性 class Washer(): def wash(self): print('do some laundry stuff') haier1 = Washer() #添加属性,对象名.属性名 = 值 haier1.width = 400 haier1.height = 500 对象属性既可以在类外面添加和获取,也可以在类里面添加和获取 在类外面获取对象属性: 在上方代码上添加: print(f'洗衣机宽度为{haier1.width}') print(f'洗衣机高度为{ha

  • PHP var_dump遍历对象属性的函数与应用代码

    本文章下面我们要为你提供二种关于遍历对象属性方法,并且举例说明遍历对象属性在php中的应用.可以看出私有变量与静态变量时获取不到的,只有定义为公共变量才可以读出来. 遍历对象属性第一种方法: 复制代码 代码如下: <?php class foo { private $a; public $b = 1; public $c; private $d; static $e; public function test() { var_dump(get_object_vars($this)); } } $

  • PowerShell中文件对象的属性方法总结

    本文介绍一个PowerShell中文件对象有哪些属性,知道了这些属性对于我们更好的对文件进行操作是非常重要的. PowerShell是一个面向对象的脚本语言,在PowerShell中,所有的都是对象,文件也是对象.既然是对象,那肯定有属性.PowerShell中的文件对象,其实就是.NET中的System.IO.FileInfo类的实例.我们要查看完整的PowerShell文件对象的属性,其实不需要去翻MSDN,然后把System.IO.FileInfo类的属性找出来,那样太麻烦了,而且貌似在P

  • javascript RegExp 对象属性与方法和应用

    JavaScript提供了一个RegExp对象来完成有关正则表达式的操作和功能,每一条正则表达式模式对应一个RegExp实例.有两种方式可以创建RegExp对象的实例. 使用RegExp的显式构造函数,语法为:new RegExp("pattern"[,"flags"]). 使用RegExp的隐式构造函数,采用纯文本格式:/pattern/[flags]. pattern部分为要使用的正则表达式模式文本,是必须的.在第一种方式中,pattern部分以JavaScri

随机推荐