当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

作者:精品下载站 日期:2024-12-14 20:32:53 浏览:17 分类:玩电脑

PowerShell 字符串数组 | PowerShell 字符串数组指南


[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

PowerShell 字符串数组的定义

PowerShell 字符串数组是字符串对象的集合,它是驻留在同一组中的多个字符串,可以使用 String []、@() 或 ArrayList 进行声明,并且可以在文件内容中以多种方式使用,例如函数,作为变量,可以对字符串数组执行多种操作,如 Split、Join、trim、ToUpper、ToLower 等。

语法:

很少有方法用于声明 PowerShell 字符串数组。

使用变量声明作为数据类型。

[String[]]

使用空数组声明。

$str = @()

使用数组列表。

[System.Collections.Arraylist]@()

如何在 PowerShell 中创建字符串数组?

如上面的语法所示,我们可以利用这些方法来创建字符串数组。
要创建字符串数组,我们可以声明变量名。

[String[]]$var = "PowerShell", "String", "Array"

另一种方法是使用 @() 创建。

$strarry = @("PowerShell", "String", "Array")

另一种方法是创建 system.collections.arraylist 类方法,如下所示。

New-Object -TypeName System.Collections.ArrayList
$arrlist = [System.Collections.ArrayList]@("PowerShell", "String", "Array")
$arrlist

字符串数组在 PowerShell 中如何工作?

当我们声明单个String时,它可以表示如下。

$str = "This is a PowerShell String"
$str

输出:

[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

当我们检查它的数据类型时,它是字符串类型。

$str.GetType()

[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

您可以检查 typeName 是一个 String,而 BaseType 是一个 System。目的。

当我们添加多个字符串时

$str = "This is a PowerShell String", "This is a second string"
$str

输出:

[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

该变量的数据类型。

$str.GetType()

[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

Type 转换为 Object[],基本类型转换为 System.Array。 Object[]数组意味着它可以接受多个字符串。

字符串数组索引

要检查我们输入的字符串的长度,

$str.Length

[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

当你声明字符串数组时,它的长度是0。

[String[]]$strarry
$strarry.Length

或者

$strarry = @()
$strarry.Length

输出:

[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

一旦我们添加了项目,它们的长度就会增加,这实际上适用于索引部分。每次我们向字符串数组中添加项目时,其索引都会增加 1,并且从 0 开始。

[String[]]$str = "First String", "Second String", "Third String"
Write-Output "0th Index: $($str[0])"
Write-Output "2nd Index: $($str[1])"

输出:

[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

不存在的 Index 将不会获得任何输出或抛出异常,例如索引 4 不存在,因此 $Str[4] 将不会给出任何输出。

[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

Here-String 方法 - 没有用

字符串也可以使用 Hare-String 方法来声明。此方法是一种可访问的文本格式,我们可以在 Here-String 方法中输入任意数量的字符串,但让我们看看它是否只是一个字符串或字符串数组。

$hashstr = @'
First String
Second String
Third String
'@

上面的 $hashstr 给出了三个字符串作为输出。

[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

当我们检查它的长度时,

$hashstr.Length

输出:

[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

它没有给出长度3,但是计算单词意味着here-string不能被认为是字符串数组,而是字符串。请参阅下面的证明。

$hashstr.Count

输出:

总计数为 1 表示它被视为单个字符串。

[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

字符串数组支持的方法

当对字符串数组进行各种操作时,我们总是需要检查该操作支持哪些方法。

创建字符串数组后,我们可以使用以下命令来查找方法。

$str | Get-Member -MemberType Method

[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

获取内容方法

Get-Content 命令自动将检索到的文件的内容转换为系统数组。例如,我们有一个文本文件名称 Test.txt 存储在 C:\temp 位置。
我们将检查其数据类型,

$file = Get-Content C:\Temp\test.txt
$file.GetType()

输出:

[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

示例

让我们讨论 PowerShell 字符串数组的示例。

示例#1:向数组字符串添加值。

我们可以使用以下方法将值添加到字符串数组中

$str = @("PowerShell", "Azure", "AZ Module")

我们有上面的字符串数组,并将值添加到字符串数组中,

$str += "DevOps"
$str += "PowerCLI"
$str

输出:

[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

示例 #2:使用 PowerShell 更改字符串数组的大小写。

您可以将字符串数组更改为大写或小写,为此,您需要使用 ToUpper() 或 ToLower()

$str = @("PowerShell", "Azure", "AZ Module")
$str.toUpper()
$str.toLower()

输出:

[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

示例 #3:String ArrayList 方法将值添加到数组中。

当我们声明一个简单的字符串数组时,我们无法使用 Add() 或 Remove() 在数组中添加或删除值,因为它是使用固定大小创建的。请参阅下面的示例。

$str = @("PowerShell", "Azure", "AZ Module")
$str.Add("PowerCLI")

输出:

[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

要检查字符串数组是否是固定大小的,

$str.IsFixedSize

输出:

[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

为了解决上面的问题,我们可以使用String的ArrayList来代替创建固定大小的数组。

New-Object -TypeName System.Collections.ArrayList
$arrlist = [System.Collections.Arraylist]@("PowerShell", "Azure")
$arrlist.Add("PowerCLI")
$arrlist.Add("DevOps")

输出:

[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

要从数组列表中删除该值,

$arrlist.Remove("Azure")
$arrlist

输出:

[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

示例#4:检查字符串数组是否包含特定字符串。

我们必须使用 Contains() 方法来检查字符串数组是否包含任何特定字符串。

$str = @("PowerShell", "Azure", "AZ Module", "DevOps", "AzCLI")
$str.Contains("Azure")
$str.Contains("Dev")

输出:

[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

通配符不支持此方法。

$str.Contains("*Module*")
False

示例 #5:使用 Select-String 命令从字符串数组中搜索。

当处理字符串数组格式的文件并从该文件中检索特定行或匹配行时,我们可以使用 Select-String 方法,如下所示。

$file = Get-Content C:\Temp\test.txt
$file
$file | Select-String -Pattern "new"
$file | Select-String -Pattern "line"

输出:

[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南

结论

PowerShell 字符串数组在自动化工程师的日常生活中非常有用。我们需要在脚本中使用它来操作项目、从字符串中检索特定数据、替换数据以及以文本格式存储命令输出。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯