[玩转系统] 如何在 PowerShell 中连接字符串
作者:精品下载站 日期:2024-12-14 03:44:00 浏览:13 分类:玩电脑
如何在 PowerShell 中连接字符串
从 PowerShell 输出数据时,您经常需要连接两个或多个字符串或变量。 PowerShell 中的连接字符串主要是使用 +
运算符完成的。但还有其他方法可以连接字符串。
在 PowerShell 中连接字符串或变量的问题通常是找到正确的输出方法。您可能会在两个字符串之间需要额外的空格,或者在输出中得到+号,这当然是您不想要的。
在本文中,我们将了解在 PowerShell 中连接多个字符串的不同方法。
Powershell连接字符串
在 PowerShell 中连接字符串的基本方法是使用 +
运算符。使用 +
运算符时,两个字符串将简单地连接在一起。让我们从以下两个字符串开始:
$string1 = "The quick brown fox"
$string2 = "jumps over the lazy dog"
现在如果我们想在PowerShell控制台中一起输出这些字符串,人们往往倾向于执行以下操作:
Write-Host $string1 + $string2
# Result
The quick brown fox + jumps over the lazy dog
但是如果你看一下结果,你会发现输出中也有 + 号,这是我们不想要的。将两个字符串输出到控制台的正确方法是将它们放在一起。
Write-Host $string1 $string2
# Result
The quick brown fox jumps over the lazy dog
但这不是连接字符串。要实际将字符串连接在一起,我们可以首先使用 +
运算符将结果存储在另一个变量中:
$string1 = "The quick brown fox"
$string2 = "jumps over the lazy dog"
$result = $string1 + $string2
Write-Host $result
# Result
The quick brown foxjumps over the lazy dog
这里唯一的问题是你错过了两个字符串之间的空格。因此,为了解决这个问题,您还可以在两个字符串之间连接一个空格:
$result = $string1 + " " + $string2
使用连接运算符
在 PowerShell 中连接字符串的另一种方法是使用连接运算符。 join
运算符允许您使用指定的分隔符连接两个或多个字符串。以我们的两个示例字符串为例,我们可以执行以下操作:
$result = $string1,$string2 -join " "
# Result
The quick brown fox jumps over the lazy dog
另一种选择是使用 .Net 连接方法。原理和结果与连接运算符相同,只是书写风格有点不同:
[string]::Join(' ',$string1,$string2)
使用格式运算符
当您需要将多个变量插入到字符串中时,使用字符串格式运算符可能是一个不错的选择。格式运算符 -f
的优点是使用较长的字符串或多个变量更容易读取和格式化。
格式运算符使用占位符来确定要插入字符串或变量的位置。占位符从 0 开始编号并放置在大括号之间。
以下面的示例为例,我们有一个带有几个字符串的 PSCusstomObject
。我们可以使用字符串格式运算符将 PowerShell 中的这些字符串连接成另一个字符串。
$obj = [PSCustomObject]@{
Name = 'Lazy Dog'
Action = 'jump over'
Item = "3 fences"
}
write-host ("can the {0} really {1} more than {2}" -f $obj.name, $obj.action, $obj.item)
# Result
can the Lazy Dog really jump over more than 3 fences
您不需要在 -f
运算符的右侧使用变量。您还可以直接插入字符串或整数:
$obj = [PSCustomObject]@{
Name = 'Lazy Dog'
Action = 'jump over'
Item = "fences"
}
write-host ("can the {0} really {1} {2} {3} {4}" -f $obj.name, $obj.action, 'less than', 5, $obj.item)
# Result
can the Lazy Dog really jump over less than 5 fences
如果您有一个包含要在 PowerShell 中连接的字符串的数组,那么您还可以使用格式运算符,而无需为占位符指定每个单独的值。
$values = @(
"Lazy Dog"
"Jumps"
"fences"
)
'Did you know that the {0} {1} 5 {2}?' -f $values
# Result
Did you know that the Lazy Dog Jumps 5 fences?
连接字符串与变量
将字符串与变量(尤其是对象或哈希表)连接起来总是有点具有挑战性。如果您想将单个变量插入到字符串中,那么您只需将字符串放在双引号“之间,然后直接插入变量:
$var = 'fox'
Write-Host "The quick brown $var jumps over the lazy dog"
# Result
The quick brown fox jumps over the lazy dog
但是当你用对象的属性来做到这一点时,它就不起作用了。要解决这个问题,您需要使用变量替换,将变量放置在 $()
中。
$obj = [PSCustomObject]@{
Name = 'Lazy Dog'
Action = 'jump over'
Item = "fences"
}
Write-Host "The quick brown fox jumps over the $($obj.name)"
# Result
The quick brown fox jumps over the Lazy Dog
使用连接方法
在PowerShell中,我们还可以使用.Net concat方法来连接字符串。 Join 运算符或方法的优点是您不需要指定分隔符,但这也使用例受到一些限制。
$values = @(
"Lazy Dog"
"Jumps"
"fences"
)
[string]::Concat('Lazy Dog','Jumps','fences')
# Or when you have an array with values:
[string]::Concat($values)
# Result for both methods:
Lazy DogJumpsfences
总结
PowerShell 中有很多连接字符串的方法,甚至比我在这里描述的还要多。这些方法在用例性能方面几乎没有差异。所以使用的方法实际上取决于情况和写作风格。
当您只需要连接几个字符串时,使用 + 运算符通常是首选方法。当您需要连接多个字符串或值时,格式运算符(占位符方法)通常更易于阅读。
另请记住,当您想要输出对象属性时,需要将它们括在括号 $()
中,并使用双引号将字符串括起来。
我希望本文能够帮助您在 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