Power Shell 学习笔记(二)所谓对象
2011-04-14 15:21
351 查看
处理对象
虽然您最初可能没有意识到,但是在 Windows PowerShell 中工作时,所使用的是 .NET 对象。随着您经验的增加,对象处理能力变得更明显,而且您发现自己使用的是对象,甚至用对象进行思考。从技术上讲,.NET 对象是 .NET 类的实例,包含数据以及与该数据关联的操作。但是,可以将对象视为具有属性(与特性类似)和方法(可以对对象执行的操作)的数据实体。
例如,在 Windows PowerShell 中获取服务时,实际上是获取表示该服务的对象。查看有关服务的信息时,所查看的是其服务对象的属性。此外,启动服务时(即,在将服务的 Status 属性更改为“started”时),所使用的是服务对象的方法。
类型相同的所有对象都具有相同的属性和方法,但是对象的每个实例可能具有不同的属性值。例如,每个服务对象都具有 Name 和 Status 属性。但是,每个服务都可以具有不同的名称和不同的状态。
准备就绪后,了解对象是很容易的。若要查明 cmdlet 正获取对象的类型,请使用管道运算符 (|) 将“get”命令的结果发送到 Get-Member 命令。例如,以下命令将 Get-Service 命令检索的对象发送到 Get-Member。
get-service | get-member
Get-Member 显示有关服务对象的信息,其中包括对象的类型名称及其属性和方法的列表。
若要获取有关对象类的信息,请在 MSDN 中复制并粘贴类型名称,如 System.ServiceProcess.ServiceController。找到类后,可以阅读 MSDN 副主题,以了解基于该类的对象(如 Windows PowerShell 中的对象)的属性和方法。
批注:
其实仔细观察一下,就可以猜到他的处理思想。其实每一个cmdlet(Get)获取到得信息都是通过一个.net的Object对象形式返回的。你可以理解为,我们在用ps的脚本写cs的代码。只不过程序不需要编译。ps的处理思想就是基于对象这样一种方式。首先,得到对象,然后通过(Property,不需要我解释了吧)设置对象,通过(Method)操作对象。Get-member是一个很有用的方法,当你获取到一个对象,不知道可以对他进行什么操作的时候,试着用一下他好了。我一般记不住这么多属性和方法的,多数都是想好思路,然后调试一下脚本。
若要查找特定对象的所有属性的值,请使用管道运算符 (|) 将“get”命令的结果发送到 Format-List 或 Format-Table 命令。将 format cmdlet 的 Property 参数与表示所有的值 (*) 一起使用。例如,若要查找系统上 Schedule 服务的所有属性,请键入:
get-service schedule | format-list -property *
以下显示一个结果示例。
批注:
首先获取到 schedule这个Service的对象,然后设置一下输出的List的Format,格式为只显示Property(和它的值)。
最初学习 Windows PowerShell 时,无需了解有关对象的任何信息,但是要意识到该概念。您将很快能够充分利用对象。
了解对象:Get-Member
Get-Member 是最有用的 cmdlet 之一,它显示有关命令返回的 .NET 对象的信息。该信息包括对象的类型、属性和方法。若要使用 Get-Member,请使用管道运算符 (|) 将命令结果发送到 Get-Member。例如:
get-service | get-member
此命令显示 Get-Service 实际上返回了一组 System.ServiceProcess.ServiceController 对象 -- 计算机上的每个服务都有一个对象。
此信息看起来技术性很强,但是它实际上非常实用。
· 通过类型名称(如“System.ServiceProcess.ServiceController”)可以知道 cmdlet 返回什么类型的 .NET 对象。若要获取有关此 .NET 类中对象的信息,请将类型名称粘贴在 MSDN 上的“Search”(搜索)文本框中。关联的 MSDN 主题包括有关此类中对象的属性和方法的信息,其中包括 Get-Service 返回的对象。
· Property 类型表示对象的属性。每个属性的值是有关服务对象的信息。例如,ServiceController 对象具有 CanPauseAndContinue 属性。该属性的 MSDN 说明解释,该属性指示是否可以暂停和恢复服务。
若要列出特定服务的属性值,请键入:
(get-service <服务名称>).<属性名称>
例如:
(get-service MSSQLServer).canpauseandcontinue
若要显示 MSSQLServer 服务的 CanPauseAndContinue 属性的名称和值列表,请键入:
get-service MSSQLServer| format-list -property name, CanPauseAndContinue
若要显示 MSSQLServer 服务的所有属性值的列表,请键入:
get-service MSSQLServer | format-list -property *
若要显示所有服务的 CanPauseAndContinue 属性的名称和值表,请键入:
get-service | format-table -property name, CanPauseAndContinue
· Method 类型表示对象的方法,即可以对对象执行的操作。例如,ServiceController 对象具有 Stop 方法,使用该方法可以停止服务。
若要调用服务对象的方法,请使用以下格式。(务必包括圆括号)。
(get-service <服务名称>).<方法名称>()
(get-service MSSQLServer ).stop()
同理
(get-service MSSQLServer ).start()
有关 Get-Member 命令的信息,请键入:
get-help get-member -detailed。
如果熟悉.net编程的人员的话,很容易上手吧。
相关文章推荐
- Power Shell 学习笔记(四)对象管道
- Power Shell 学习笔记(一)先了解下Cmdlet
- Power Shell 学习笔记(五)运算符
- Power Shell 学习笔记
- Power Shell 学习笔记(三)变量
- shell脚本学习笔记之sed命令用法
- [原创] linux课堂-学习笔记-课程3.Linux目录结构介绍及内核与shell分析
- PHP学习笔记7(类和对象1)
- Java并发学习笔记(9)组合对象的安全同步
- shell学习笔记
- ruby学习笔记之【对象模型】
- SHELL脚本攻略(学习笔记)--2.1 cat
- [学习笔记]面向对象开发中的一些思想和原则
- 《Effective java》学习笔记 1 之 对象创建和销毁
- java基础学习笔记——基本数据类型对象包装类
- JavaScript 对象学习笔记(下)
- Shell脚本学习笔记
- 【JavaSE学习笔记】面向对象_01(入门,匿名对象,成员变量,局部变量,封装,this,构造方法)
- php学习笔记之指向对象的变量
- java学习笔记(2)基本数据类型对象包装类