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

[玩转系统] 字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例

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

字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例


[玩转系统] 字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例

PowerShell 字符串变量简介

PowerShell 中的变量是一种在其中存储值的方法,在字符串中使用这些变量是一种通过用双引号扩展变量来表示这些变量的方法,还可以以不同的方式表示变量,例如字符串格式化或直接 PowerShell 变量和当字符串内的变量存储 cmdlet 值时,对字符串内的变量执行操作,以及像字符串连接这样的正常操作。

字符串中 PowerShell 变量的语法

对于字符串中的变量没有特定的方法,但是当声明字符串时,我们可以通过一些方法来扩展其中的变量。

例如,在外部声明字符串变量并在双引号、单引号、here-string、PowerShell 字符串数组内使用它们,或在 Invoke-Command 中表示它们。

描述:

PowerShell 使用 $符号和变量名称来声明变量。

例如,$Services。当我们声明变量的任何类型(Integer、double、string、DateTime)并且在字符串变量中使用它们时,它会自动将该变量转换为字符串。

代码:

$num = 20
$num.GetType()

在这里,我们声明了 $num 变量,其值为 20,其数据类型为整数,如下面的输出所示。

输出:

[玩转系统] 字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例

当我们在字符串中使用这个变量时,让我们看看它会产生什么输出。

代码:

Write-Output "Representing $num to string"

输出:

[玩转系统] 字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例

虽然数字是 20,但它是在字符串中表示的,但除非显式转换为字符串,否则其数据类型将被保留。同样,对于其他数据类型,字符串可以将任何变量转换为字符串。

代码:

$a = 10.2
Write-Output "Representing float $a to string"
$b = "Hello World"
Write-Output "Representing String $b to string"

输出:

[玩转系统] 字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例

PowerShell 中的单引号和双引号是相同的,但是扩展变量会产生巨大的差异,因为单引号字符串无法扩展变量。

代码:

"Expanding Number: $num variable with the double-quote"

输出:

[玩转系统] 字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例

代码:

'Expanding Number: $num variable with the single-quote'

输出:

[玩转系统] 字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例

我们可以通过许多其他方式在字符串中使用变量。

字符串中的 PowerShell 变量示例

下面给出了字符串中 PowerShell 变量的示例:

示例 #1 - 显示具有字符串格式的变量。

当字符串中有要显示的变量时,我们可以使用字符串格式化方法 -f 加上‘{}’来显示它们。

本例中有两个变量以及我们显示它们的一般情况。

代码:

$a = "Hello world"
$b = "Microsoft Azure"
Write-Output "First Variable: $a, Second Variable: $b"
"Without Write-Output, First Variable: $a, Second Variable: $b"

输出:

[玩转系统] 字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例

通过格式化方法,我们可以显示变量,如下所示。

代码:

"Formatting method: First Variable: {0}, Second Variable: {1}" -f $a, $b

输出:

[玩转系统] 字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例

示例 #2 - 使用 Here-String 内的变量。

当我们扩展 Here-String @ ” ”@ 中的变量时,使用单引号或双引号很重要。当我们使用单引号时,它无法获取变量的值,但是使用双引号时,就可以了。

代码:

$val1 = "Hello world"
$val2 = "Microsoft PowerShell"
@"
This is Here-String
First Variable: $val1
Second Variable: $val2
"@

输出:

[玩转系统] 字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例

带单引号。

代码:

@'
This is Here-String
First Variable: $val1
Second Variable: $val2
'@

输出:

[玩转系统] 字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例

示例 #3 - 将 cmdlet 输出与字符串内的变量一起使用。

我们可以使用 PowerShell 字符串内变量的输出,也可以扩展它们的属性。

代码:

$ser = Get-Service -Name WinRm
$ser

输出:

[玩转系统] 字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例

当我们扩展服务名称时。

代码:

Write-Output "Service Name is $ser.Name"

输出:

[玩转系统] 字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例

我们可以获得服务的输出,但是如果你注意到的话,它是服务名称的类型,而不是实际的服务名称,所以如果你想要正确的输出,我们需要在使用服务变量之前使用 $变量。

代码:

Write-Output "Service Name is $($ser.Name)"

输出:

[玩转系统] 字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例

或者您可以使用如下所示的字符串格式化方法。

代码:

"Service name is : {0}" -f $ser.name

输出:

[玩转系统] 字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例

我们再举一个在此处字符串中扩展 cmdlet 输出变量的示例。

代码:

@"
Today's date is $(Get-Date)
Today's Day is $((Get-Date).DayOfWeek)
Today's Day of the year is $((Get-Date).DayOfYear)
"@

输出:

[玩转系统] 字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例

示例 #4 - 使用 Invoke-Command 字符串内的变量。

使用 Invoke-Command,当我们使用字符串内的变量并获取超出 Invoke-Command 范围的值时,我们无法获取其值。

代码:

$value = "2021"
Invoke-Command -ComputerName LabMachine2k16 -ScriptBlock {
Write-Output "The outside variable is: $value"
}

输出:

[玩转系统] 字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例

这不是字符串或变量的问题,而是变量超出了范围。所以对于这个方法,我们需要使用-ArgumentList参数来传递它。

代码:

$value = "2021"
Invoke-Command -ComputerName LabMachine2k16 -ScriptBlock {
param(
$value
)
Write-Output "The outside variable is : $value"
} -ArgumentList $value

输出:

[玩转系统] 字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例

示例 #5 - 在哈希表内的字符串中使用变量。

我们还可以使用哈希表内字符串中的变量。在下面的示例中,我们可以直接使用 value 字段中的变量,但只是为了表明该变量的扩展支持哈希表中支持的字符串。

代码:

$Ser = Get-Service -Name WinRm
@{
ServiceName = "$($Ser.Name)"
Starttype = "$($ser.StartType)"
Status = "$($ser.Status)"
}

输出:

[玩转系统] 字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例

示例 #6 - 在 PowerShell 字符串中表示数组。

我们可以使用索引来使用字符串获取数组的输出。

代码:

$services = @("Winrm", "Spooler", "w32Time")
for($i=0; $i -lt $services.Count; $i++){
"Service Name : $($services[$i])"
}

输出:

[玩转系统] 字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例

我们还可以使用foreach方法。

结论

当我们将输出存储到文件中时,如果我们想通过扩展字符串内 cmdlet 的变量来最小化工作量,而不是使用额外的变量进行 cmdlet 扩展,这使得它们易于显示和格式化,PowerShell 字符串中的变量非常有用字符串内的值。

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

取消回复欢迎 发表评论:

关灯