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

[玩转系统] PowerShell 加入数组 |了解 PowerShell 连接数组的示例

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

PowerShell 加入数组 |了解 PowerShell 连接数组的示例


[玩转系统] PowerShell 加入数组 |了解 PowerShell 连接数组的示例

PowerShell加入阵列简介。

PowerShell Join array 是使用该运算符并使用 String 类的方法来连接数组的运算符。由于数组(不是 ArrayList)的固定大小性质,连接两个数组会创建第三个数组。 Join数组的输出也是Object的集合。

语法

连接数组操作支持各种语法。

  • “+”运算符用于连接两个字符串数组或不同数据类型的数组。
  • Join(Char, Object[]):将字符连接到Object数组。
  • Join(Char, String[]):将字符连接到字符串数组。
  • Join(String, Object[]):将字符串连接到 Object 数组。
  • Join(Char, String, Int32, Int32):将字符连接到字符串数组,从起始索引到字符串的计数。

示例

以下是下面提到的示例

示例 #1 - 使用“+”运算符连接两个数组。

假设我们有两个不同的数组,我们需要连接它们。

$array1 = "Cat","Dog","Cow"
$array2 = "Cars","Bikes","Trucks"
To join two arrays, we will use the ‘+’ operator here.
$array = $array1 + $array2
$array

输出:

[玩转系统] PowerShell 加入数组 |了解 PowerShell 连接数组的示例

示例 #2 - 连接两个具有不同数据类型的数组。

在第一个示例中,我们看到两个 PowerShell 数组存储的值是字符串的集合。但是,我们可以在字符串中存储不同的值并将它们连接起来。

例如,

$array1 = "Cat","Dog","Cow"
$array2 = 11,"TwoTwo",33,"FourFour"

如果我们检查 $Array1 和 $Array2 这两个变量的数据类型,它将是一个 Object[] 的集合,如下所示。

[玩转系统] PowerShell 加入数组 |了解 PowerShell 连接数组的示例

这意味着数组中的;您输入的不同类型的对象并不重要;最终,它成为对象的集合。因此我们可以使用‘+’运算符合并任意数量的数组。

在此示例中,合并两个数组,

$array = $array1 + $array2
$array

输出:

[玩转系统] PowerShell 加入数组 |了解 PowerShell 连接数组的示例

在前两个示例中,我们使用第三个数组来存储结果。让我们检查一下它的数据类型;它也应该是对象集合。

$array.GetType()

输出:

[玩转系统] PowerShell 加入数组 |了解 PowerShell 连接数组的示例

示例 #3 - 使用 ArrayList 连接两个数组

在下面的示例中,我们将使用 .Net 类 System.Collection.ArrayList 连接两个数组,并且要执行连接操作,我们需要使用 Add() 方法。如下所示,我们有两个数组,它们使用 Add() 方法连接起来。

$array1 = "Cat","Dog","Cow"
$array2 = 11,"TwoTwo",33,"FourFour"
foreach($value in $array1){$JoinArray.Add($value) | Out-Null}
foreach($value in $array2){$JoinArray.Add($value) | Out-Null}
$JoinArray

输出:

[玩转系统] PowerShell 加入数组 |了解 PowerShell 连接数组的示例

我们可以像 $JoinArray($Array1) 一样直接将数组添加到 Add 方法中,但问题是它将整个数组视为索引 0,而将下一个数组 $JoinArray($Array2) 视为索引 1。所以我们必须添加使用 foreach 循环的每个值。

示例 #4 - 字符串连接数组示例 - I

在字符串数组中,System.String .Net 类支持 Join 方法。有多种重载方法可以连接数组。有关字符串连接方法,请参阅下面的参考链接。

https://docs.microsoft.com/en-us/dotnet/api/system.string.join?view=net-5.0#System_String_Join_System_Char_System_Object

[玩转系统] PowerShell 加入数组 |了解 PowerShell 连接数组的示例

我们将使用上面的一些方法。

在上述所有Join方法中,第一个参数始终是Separator,第二个参数是执行Join操作的项。

我们将在这里使用的第一个字符串连接方法是 Join(Char, Object[])。这里的 Char 是分隔符,Object[] 是要处理的项目。它是一个Object[]的数组,所以我们可以在其中传递任何对象,因此它是一个字符串方法;它应该将该 Object[] 转换为 String 数组。例如,

$Services = Get-Service
[String]::Join('|',$Services)

输出:

[玩转系统] PowerShell 加入数组 |了解 PowerShell 连接数组的示例

正如您在上面的示例中看到的,我们通过分隔符“|”连接了每个服务对象[]。对于此示例,输出可能采用正确的格式,但在某些示例(例如 Get-Process)中,当您将整个 Object[] 作为字符串传递时。例如,

$procs = Get-Process
[String]::Join('|',$procs)

输出:

[玩转系统] PowerShell 加入数组 |了解 PowerShell 连接数组的示例

上面的输出不是我们想要的,但是我们可以使用它的属性用提供的分隔符来分隔对象。例如,

[String]::Join('|',$procs.name)

输出:

[玩转系统] PowerShell 加入数组 |了解 PowerShell 连接数组的示例

示例 #5 - 字符串连接数组示例 - II

我们可以使用 String .Net 类来连接数组的第二种方法是 Join(Char, String[])。它将字符串数组与第一个参数中提到的分隔符连接起来。例如,

$str = "This","is","PowerShell","String"
[String]::Join('^',$str)

输出:

[玩转系统] PowerShell 加入数组 |了解 PowerShell 连接数组的示例

与空间结合,

[String]::Join(' ',$str)
This is PowerShell String

示例 #6 - 字符串连接数组示例 - III

在上面的两个例子中,我们使用Character连接了一个字符串数组。现在我们还可以使用另一个字符串连接字符串,因为重载方法支持这一点。在第二个参数中,我们可以传递对象或字符串。

它支持两种方法将字符串连接到数组。

  • Join(String, Object[]):将类似对象数组(Get-Service 或 Get-process)与每个对象输出之间的字符串分隔符连接起来。例如,
$ser = Get-Service
[String]::Join('  Hello  ',$ser)

输出:

[玩转系统] PowerShell 加入数组 |了解 PowerShell 连接数组的示例

如上例所示,服务之间通过Hello关键字进行分隔和连接,其中包含空格。

  • Join(String, String[]):使用每个元素之间的字符串分隔符连接字符串数组。

例如

$str = "This","is","PowerShell","String"
[String]::Join(' String ',$str)

输出:

[玩转系统] PowerShell 加入数组 |了解 PowerShell 连接数组的示例

示例 #7 - 字符串连接数组示例 - IV

在此方法中,我们使用字符或字符串作为要连接的对象数组[]或字符串数组[]的分隔符。为此,我们可以使用两种单独的方法。

  • 加入(Char, String[], Int32, Int32)

参数说明如下。

  • Char:给定输入的字符分隔符
  • String[]:用于分隔和连接字符的字符串数组。
  • Int32:串联的起始索引。
  • Int32:从起始索引开始计数。

例如,

$str = "This","is","PowerShell","string","to","test","the","join","array"
[String]::Join('#',$str, 2,5)

输出:

[玩转系统] PowerShell 加入数组 |了解 PowerShell 连接数组的示例

在上面的示例中,我们使用分隔符“#”来连接从起始索引 2 到总计数 5 个单词的字符串。

  • 连接(字符串,字符串[],Int32,Int32)

与上面的操作类似,我们可以使用 Join 方法将另一个字符串与起始索引和总计数连接起来。

例如,

$str = "This","is","PowerShell","string","to","test","the","join","array"
[String]::Join(" hello world ",$str, 1,3)

输出:

[玩转系统] PowerShell 加入数组 |了解 PowerShell 连接数组的示例

结论 - PowerShell 加入阵列

PowerShell 连接数组对于脚本来说是一个非常有用且强大的操作。它服务于许多基本目的,例如连接路径、在字符串数组之间添加值等。还有其他命令也服务于连接基础知识,例如 Join-Path 和 Join-ADlStoreItem,它们间接服务于相同的数组操作,但它们是高级命令。

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

取消回复欢迎 发表评论:

关灯