[玩转系统] 字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例
作者:精品下载站 日期:2024-12-14 04:59:00 浏览:14 分类:玩电脑
字符串中的 PowerShell 变量 |字符串中的 PowerShell 变量示例
PowerShell 字符串变量简介
PowerShell 中的变量是一种在其中存储值的方法,在字符串中使用这些变量是一种通过用双引号扩展变量来表示这些变量的方法,还可以以不同的方式表示变量,例如字符串格式化或直接 PowerShell 变量和当字符串内的变量存储 cmdlet 值时,对字符串内的变量执行操作,以及像字符串连接这样的正常操作。
字符串中 PowerShell 变量的语法
对于字符串中的变量没有特定的方法,但是当声明字符串时,我们可以通过一些方法来扩展其中的变量。
例如,在外部声明字符串变量并在双引号、单引号、here-string、PowerShell 字符串数组内使用它们,或在 Invoke-Command 中表示它们。
描述:
PowerShell 使用 $符号和变量名称来声明变量。
例如,$Services。当我们声明变量的任何类型(Integer、double、string、DateTime)并且在字符串变量中使用它们时,它会自动将该变量转换为字符串。
代码:
$num = 20
$num.GetType()
在这里,我们声明了 $num 变量,其值为 20,其数据类型为整数,如下面的输出所示。
输出:
当我们在字符串中使用这个变量时,让我们看看它会产生什么输出。
代码:
Write-Output "Representing $num to string"
输出:
虽然数字是 20,但它是在字符串中表示的,但除非显式转换为字符串,否则其数据类型将被保留。同样,对于其他数据类型,字符串可以将任何变量转换为字符串。
代码:
$a = 10.2
Write-Output "Representing float $a to string"
$b = "Hello World"
Write-Output "Representing String $b to string"
输出:
PowerShell 中的单引号和双引号是相同的,但是扩展变量会产生巨大的差异,因为单引号字符串无法扩展变量。
代码:
"Expanding Number: $num variable with the double-quote"
输出:
代码:
'Expanding Number: $num variable with the single-quote'
输出:
我们可以通过许多其他方式在字符串中使用变量。
字符串中的 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"
输出:
通过格式化方法,我们可以显示变量,如下所示。
代码:
"Formatting method: First Variable: {0}, Second Variable: {1}" -f $a, $b
输出:
示例 #2 - 使用 Here-String 内的变量。
当我们扩展 Here-String @ ” ”@ 中的变量时,使用单引号或双引号很重要。当我们使用单引号时,它无法获取变量的值,但是使用双引号时,就可以了。
代码:
$val1 = "Hello world"
$val2 = "Microsoft PowerShell"
@"
This is Here-String
First Variable: $val1
Second Variable: $val2
"@
输出:
带单引号。
代码:
@'
This is Here-String
First Variable: $val1
Second Variable: $val2
'@
输出:
示例 #3 - 将 cmdlet 输出与字符串内的变量一起使用。
我们可以使用 PowerShell 字符串内变量的输出,也可以扩展它们的属性。
代码:
$ser = Get-Service -Name WinRm
$ser
输出:
当我们扩展服务名称时。
代码:
Write-Output "Service Name is $ser.Name"
输出:
我们可以获得服务的输出,但是如果你注意到的话,它是服务名称的类型,而不是实际的服务名称,所以如果你想要正确的输出,我们需要在使用服务变量之前使用 $变量。
代码:
Write-Output "Service Name is $($ser.Name)"
输出:
或者您可以使用如下所示的字符串格式化方法。
代码:
"Service name is : {0}" -f $ser.name
输出:
我们再举一个在此处字符串中扩展 cmdlet 输出变量的示例。
代码:
@"
Today's date is $(Get-Date)
Today's Day is $((Get-Date).DayOfWeek)
Today's Day of the year is $((Get-Date).DayOfYear)
"@
输出:
示例 #4 - 使用 Invoke-Command 字符串内的变量。
使用 Invoke-Command,当我们使用字符串内的变量并获取超出 Invoke-Command 范围的值时,我们无法获取其值。
代码:
$value = "2021"
Invoke-Command -ComputerName LabMachine2k16 -ScriptBlock {
Write-Output "The outside variable is: $value"
}
输出:
这不是字符串或变量的问题,而是变量超出了范围。所以对于这个方法,我们需要使用-ArgumentList参数来传递它。
代码:
$value = "2021"
Invoke-Command -ComputerName LabMachine2k16 -ScriptBlock {
param(
$value
)
Write-Output "The outside variable is : $value"
} -ArgumentList $value
输出:
示例 #5 - 在哈希表内的字符串中使用变量。
我们还可以使用哈希表内字符串中的变量。在下面的示例中,我们可以直接使用 value 字段中的变量,但只是为了表明该变量的扩展支持哈希表中支持的字符串。
代码:
$Ser = Get-Service -Name WinRm
@{
ServiceName = "$($Ser.Name)"
Starttype = "$($ser.StartType)"
Status = "$($ser.Status)"
}
输出:
示例 #6 - 在 PowerShell 字符串中表示数组。
我们可以使用索引来使用字符串获取数组的输出。
代码:
$services = @("Winrm", "Spooler", "w32Time")
for($i=0; $i -lt $services.Count; $i++){
"Service Name : $($services[$i])"
}
输出:
我们还可以使用foreach方法。
结论
当我们将输出存储到文件中时,如果我们想通过扩展字符串内 cmdlet 的变量来最小化工作量,而不是使用额外的变量进行 cmdlet 扩展,这使得它们易于显示和格式化,PowerShell 字符串中的变量非常有用字符串内的值。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag