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

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

作者:精品下载站 日期:2024-12-14 04:51:22 浏览:17 分类:玩电脑

PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?


[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

PowerShell 连接字符串简介

PowerShell Join String(.NET 字符串类的方法),它组合多个字符串并按照提供输入的顺序生成单个字符串,并且 Join-String 方法已添加到新的 PowerShell 核心版本中,并且它支持高级PowerShell 字符串的连接方法。

语法

-Join <String[]>
<String[]> -Join <Delimiter>

连接字符串语法,

Join-String
[[-Property] <PSPropertyExpression>]
[[-Separator] <String>]
[-OutputPrefix <String>]
[-OutputSuffix <String>]
[-UseCulture]
[-InputObject <PSObject[]>]
[<CommonParameters>]

连接路径语法,

Join-Path
[-Path] <String[]>
[-ChildPath] <String>
[[-AdditionalChildPath] <String[]>]
[-Resolve]
[-Credential <PSCredential>]
[<CommonParameters>]

PowerShell 连接字符串如何工作?

PowerShell Join 命令作用于字符串,将多个字符串连接成一个。在 Join 语法中,

-Join <String[]>
<String[]> -Join <Delimiter>

String[] - 表示多个字符串输入。

- 指示要连接的字符串。如果没有提供分隔符,-Join 命令默认使用 (“ ”) 连接字符串。

例如,

-Join ("Hello","PoweShell","Join")

输出:

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

您可能已经注意到,我们在括号内使用了字符串,因为带圆括号的字符串提到了数组,如果我们不使用它,并且它们之间有逗号(,)分隔符,则只会提交第一个字符串到连接运算符。请参阅下面的示例,

-Join "Hello","PoweShell","Join"

输出:

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

您还可以使用变量来连接字符串。

$var = "Hello","PoweShell","Join"
-Join $var

输出:

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

此 -Join String 方法适用于任何版本的 PowerShell(框架或核心版本)。

还有另一种称为 Join-String 的方法,它执行相同的多个字符串连接操作,但它有一些高级方法,例如我们可以对子字符串应用公式,我们可以使用展开,在连接脚本后使用不同的参数作为分隔符,例如 SingleQuote 或 DoubleQuote或者我们可以从一个对象创建一个类定义。

此方法仅适用于 PowerShell Core(6.2 或更高版本)。

如果不指定任何属性,直接使用 Join-String 命令,它将使用 $OFS(输出字段分隔符),默认为“ ”。

例如,

"Hello","PowerShell","Join" | Join-String

输出:

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

还有连接父路径和子路径的命令 Join-Path。

示例

以下是下面提到的示例

1.-Join字符串命令的多种使用方式。

不使用数组,

-Join "Animals","Birds","Vehicles"

输出:

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

通过使用数组,

-Join ("Animals","Birds","Vehicles")

输出:

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

通过使用变量,

$a =  "Hello","PowerShell","Join"
-Join $a

输出:

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

2. 使用特定分隔符连接字符串。

要使用特定分隔符连接字符串,我们需要使用语法所示的命令,示例如下所示。

示例#1

"Hello","PowerShell","Join" -join ','

输出:

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

示例#2

"PowerShell","Azure","Runbook" -join " "

输出:

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

示例#3

在下面的示例中,我们使用字符来连接字符串。

"PowerShell","Azure","Runbook" -join "#O"

输出:

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

您还可以直接将 Join 操作应用于 cmdlet。例如,以下命令将从文本文件中获取内容并用分号 (;) 将它们连接起来。

(Get-Content C:\Temp\Servers.txt) -join ';'

输出:

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

3.加入路径命令。

要加入子路径和父路径,

Join-Path -Path C:\ -ChildPath 'temp'

输出:

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

当我们在路径中使用 ‘\’ 时,它会被忽略,如下所示。

Join-Path -Path 'C:\' -ChildPath '\temp'

输出:

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

4. 连接字符串命令。

如上所述,此命令提供了连接多个字符串的高级功能。例如,

示例1:Join-String命令的默认分隔符。

"PowerShell","Azure","runbook" | Join-String

输出:

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

在上面的示例中,字符串与 $OFS 连接。

示例2:带有分隔符的Join-String命令。

"PowerShell","Azure","runbook" | Join-String -Separator ','

输出:

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

示例 #3 - 使用分隔符和 -SingleQuote 属性连接字符串。

"PowerShell","Azure","runbook" | Join-String -Separator ',' -SingleQuote

输出:

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

示例 #4 - 使用分隔符和 -DoubleQuote 属性连接字符串。

"PowerShell","Azure","runbook" | Join-String -Separator ',' -DoubleQuote

输出:

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

示例 #5 - 使用 Join-String 进行 Get-Process。

在下面的示例中,我们将前 5 个进程与属性“Name”、分隔符并使用双引号连接起来。

Get-Process | Select -First 5 | Join-String -Property Name -Separator ',' -DoubleQuote

输出:

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

这里,检索正在运行的进程列表的 Get-Process 通过管道传递给 Join-String 命令,并使用属性“Name”进行连接。您还可以选择不同的属性,例如进程 ID。

Get-Process | Select -First 5 | Join-String -Property id -Separator ','

输出:

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

示例 #6 - 使用带有 SubString 操作的属性名称来连接进程名称。

在下面的示例中,我们将使用子字符串操作来连接前 3 个字符的进程。

Get-Process | Select -First 5 | Join-String -Property {$_.Name.Substring(0,3)} -Separator ',' -DoubleQuote

输出:

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

在下面的示例中,我们选择前 5 个进程,将其传递给 Join-String 命令的 Name 属性,然后将其转换为 Caps 和连接。

Get-Process | Select -First 5 | Join-String -Property {$_.Name.ToUpper()} -Separator ',' -DoubleQuote

输出:

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

示例#7 - 带有特殊字符的分隔符。

作为分隔符,我们还可以使用特殊字符。您可以从下面的 MS 链接获取特殊字符列表。

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_special_characters?view=powershell-7.1

下面的命令将检索以“Power”开头的进程,并使用其“Name”属性将它们连接起来,并用特殊字符“n(换行符)和“t”(制表符)将它们分开,并将输出标记为“PowerShell Processes”和用于它的-OutPrefix 参数。

Get-Process Power* | Join-String -Property Name -Separator "`n`t" -OutputPrefix "PowerShell Processes: `n`t"

输出:

[玩转系统] PowerShell 连接字符串 |了解 PowerShell 连接字符串如何工作?

请注意:我们在行尾添加了特殊字符,因此第一行将相应地设置格式。

结论

当我们处理字符串时,PowerShell Join 命令在脚本中非常有用,当我们处理路径时也非常有用,因此我们可以连接路径,也可以对分割字符串执行连接操作。

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

取消回复欢迎 发表评论:

关灯