[玩转系统] PowerShell 字符串数组 | PowerShell 字符串数组指南
作者:精品下载站 日期:2024-12-14 20:32:53 浏览:17 分类:玩电脑
PowerShell 字符串数组 | PowerShell 字符串数组指南
PowerShell 字符串数组的定义
PowerShell 字符串数组是字符串对象的集合,它是驻留在同一组中的多个字符串,可以使用 String []、@() 或 ArrayList 进行声明,并且可以在文件内容中以多种方式使用,例如函数,作为变量,可以对字符串数组执行多种操作,如 Split、Join、trim、ToUpper、ToLower 等。
语法:
很少有方法用于声明 PowerShell 字符串数组。
使用变量声明作为数据类型。
[String[]]
使用空数组声明。
$str = @()
使用数组列表。
[System.Collections.Arraylist]@()
如何在 PowerShell 中创建字符串数组?
如上面的语法所示,我们可以利用这些方法来创建字符串数组。
要创建字符串数组,我们可以声明变量名。
[String[]]$var = "PowerShell", "String", "Array"
另一种方法是使用 @() 创建。
$strarry = @("PowerShell", "String", "Array")
另一种方法是创建 system.collections.arraylist 类方法,如下所示。
New-Object -TypeName System.Collections.ArrayList
$arrlist = [System.Collections.ArrayList]@("PowerShell", "String", "Array")
$arrlist
字符串数组在 PowerShell 中如何工作?
当我们声明单个String时,它可以表示如下。
$str = "This is a PowerShell String"
$str
输出:
当我们检查它的数据类型时,它是字符串类型。
$str.GetType()
您可以检查 typeName 是一个 String,而 BaseType 是一个 System。目的。
当我们添加多个字符串时
$str = "This is a PowerShell String", "This is a second string"
$str
输出:
该变量的数据类型。
$str.GetType()
Type 转换为 Object[],基本类型转换为 System.Array。 Object[]数组意味着它可以接受多个字符串。
字符串数组索引
要检查我们输入的字符串的长度,
$str.Length
当你声明字符串数组时,它的长度是0。
[String[]]$strarry
$strarry.Length
或者
$strarry = @()
$strarry.Length
输出:
一旦我们添加了项目,它们的长度就会增加,这实际上适用于索引部分。每次我们向字符串数组中添加项目时,其索引都会增加 1,并且从 0 开始。
[String[]]$str = "First String", "Second String", "Third String"
Write-Output "0th Index: $($str[0])"
Write-Output "2nd Index: $($str[1])"
输出:
不存在的 Index 将不会获得任何输出或抛出异常,例如索引 4 不存在,因此 $Str[4] 将不会给出任何输出。
Here-String 方法 - 没有用
字符串也可以使用 Hare-String 方法来声明。此方法是一种可访问的文本格式,我们可以在 Here-String 方法中输入任意数量的字符串,但让我们看看它是否只是一个字符串或字符串数组。
$hashstr = @'
First String
Second String
Third String
'@
上面的 $hashstr 给出了三个字符串作为输出。
当我们检查它的长度时,
$hashstr.Length
输出:
它没有给出长度3,但是计算单词意味着here-string不能被认为是字符串数组,而是字符串。请参阅下面的证明。
$hashstr.Count
输出:
总计数为 1 表示它被视为单个字符串。
字符串数组支持的方法
当对字符串数组进行各种操作时,我们总是需要检查该操作支持哪些方法。
创建字符串数组后,我们可以使用以下命令来查找方法。
$str | Get-Member -MemberType Method
获取内容方法
Get-Content 命令自动将检索到的文件的内容转换为系统数组。例如,我们有一个文本文件名称 Test.txt 存储在 C:\temp 位置。
我们将检查其数据类型,
$file = Get-Content C:\Temp\test.txt
$file.GetType()
输出:
示例
让我们讨论 PowerShell 字符串数组的示例。
示例#1:向数组字符串添加值。
我们可以使用以下方法将值添加到字符串数组中
$str = @("PowerShell", "Azure", "AZ Module")
我们有上面的字符串数组,并将值添加到字符串数组中,
$str += "DevOps"
$str += "PowerCLI"
$str
输出:
示例 #2:使用 PowerShell 更改字符串数组的大小写。
您可以将字符串数组更改为大写或小写,为此,您需要使用 ToUpper() 或 ToLower()
$str = @("PowerShell", "Azure", "AZ Module")
$str.toUpper()
$str.toLower()
输出:
示例 #3:String ArrayList 方法将值添加到数组中。
当我们声明一个简单的字符串数组时,我们无法使用 Add() 或 Remove() 在数组中添加或删除值,因为它是使用固定大小创建的。请参阅下面的示例。
$str = @("PowerShell", "Azure", "AZ Module")
$str.Add("PowerCLI")
输出:
要检查字符串数组是否是固定大小的,
$str.IsFixedSize
输出:
为了解决上面的问题,我们可以使用String的ArrayList来代替创建固定大小的数组。
New-Object -TypeName System.Collections.ArrayList
$arrlist = [System.Collections.Arraylist]@("PowerShell", "Azure")
$arrlist.Add("PowerCLI")
$arrlist.Add("DevOps")
输出:
要从数组列表中删除该值,
$arrlist.Remove("Azure")
$arrlist
输出:
示例#4:检查字符串数组是否包含特定字符串。
我们必须使用 Contains() 方法来检查字符串数组是否包含任何特定字符串。
$str = @("PowerShell", "Azure", "AZ Module", "DevOps", "AzCLI")
$str.Contains("Azure")
$str.Contains("Dev")
输出:
通配符不支持此方法。
$str.Contains("*Module*")
False
示例 #5:使用 Select-String 命令从字符串数组中搜索。
当处理字符串数组格式的文件并从该文件中检索特定行或匹配行时,我们可以使用 Select-String 方法,如下所示。
$file = Get-Content C:\Temp\test.txt
$file
$file | Select-String -Pattern "new"
$file | Select-String -Pattern "line"
输出:
结论
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