PowerShell 是面型对象的

对象基础

在PowerShell中,一切皆为对象。对象是一个特定模板(称为类)的独立实例。类规定了对象将包含的内容类型,决定了其方法(即可以对该对象执行的操作)。

当直接调用一个变量时,返回的是其最直观的值。

$fileName = "myDocument.txt"
$fileName

这行代码会直接输出字符串 myDocument.txt

要深入了解一个对象的能力,需要使用 Get-Member。它能列出对象的所有属性和方法。

$fileName | Get-Member

或者使用 -InputObject 参数:

Get-Member -InputObject $fileName

这会显示 System.String 类型的所有成员,例如 Length 属性和 Substring()Replace() 等方法。

访问对象属性

使用点符号可以访问对象的属性,这可以获取对象的特定数据。

$fileName.Length

这行代码会输出数字 15,因为它计算了字符串 "myDocument.txt" 包含的字符总数。

调用对象方法

方法代表对象可以执行的动作,调用时需要在方法名后加上括号,括号内可以传递参数。

$fileName.ToUpper()

这行代码会返回一个新的字符串 "MYDOCUMENT.TXT",它将所有字母转换为大写。注意,原始字符串对象本身并未被修改。

$newName = $fileName.Replace("my", "our")
$newName

这里我们调用了 Replace() 方法,它将 "my" 替换为 "our",并将返回的新字符串 "ourDocument.txt" 赋值给了 $newName 变量。

创建自定义对象

当内置对象类型不能满足需求时,可以创建自定义的 PSCustomObject。一种简洁的方法是使用哈希表并进行类型转换。

$serverInfo = [PSCustomObject]@{
    Name = "SRV-DB01";
    IP = "192.168.1.100";
    Status = "Online"
}

创建后,可以像访问任何对象属性一样访问自定义属性。

$serverInfo.Name
$serverInfo.Status

这会分别输出 "SRV-DB01""Online"

通过 Get-Member 查看此对象,会发现其类型为 PSCustomObject,并拥有自定义的三个成员。

> Get-Member -InputObject $serverInfo

   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()
IP          NoteProperty string IP=192.168.1.100
Name        NoteProperty string Name=SRV-DB01
Status      NoteProperty string Status=Online
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容