1、-AS和-IS
1.1 -AS运算符 将一种已存在的对象转换为新的对象类型,从而产生一个新的对象;
例如,如果存在一个包含小鼠的数字(可能来自一个除法运算结果),可以通过converting或者casting将爱数字转化为一个整数 。
举例1:1000/3 -AS [int]
解释:首先是一个还将被转换的对象,然后是 -AS 运算符,最后一个[]中括号,中括号包含转化后的类型(本例[int]为取整数(四舍五入),是指将小数部分四舍五入转为整数,而不是简单的取整数)
相关的其他类型:
[String] #字符串
[XML] #XML是”可扩展标记语言“的缩写,是一种对于任意结构化的信息的可描述性语言。
[INT] #整数类型
[Single] #单精度实数类型,float(与single同意) 和 double 分别映射
到 System.Single 和 System.Double
[Double] #双精度实数类型
[Datetime] #对象的类型由实现定义,此类型的对象可以通过 cmdlet Get-Date 创建。
在 powerShell 中,此类型为 System.DateTime
[bool] #布尔类型为 bool。 该类型只有两个值,即 False 和 True,
这两个值分别由自动变量 $false 和 $true 表示 (§2.3.2.2) 。
在 PowerShell 中,bool 映射到 System.Boolean。
1.2 -IS运算符,主要用于判断某个对象是否为特定类型,如果是返回true,否返回false
举例:123.45 -IS [int]
"server01" -is [string]
$true -is [bool]
(Get-Date) -is [datetime]
2 -replace 运算符
主要用于在某个字符串中虚招特定字符(串),最后将该字符(串)替换为新的字符(串);
举例:
“192.168.34.12” -replace “34”,“15”
3 -Join 和 -split 运算符
主要用于将数组转化为分隔列表和将分隔列表转化为数组。
3.1 -join
举例:
1\ $array ="1","2","3","4","5","6"
$array
1
2
3
4
5
6
解释:powershell 自动将使用逗号隔开的列表识别为一个数组。
后面我们需要将这个数组的值转换为以管道符隔开的的字符串,可以使用-join实现,如下:
2\ $array -join "|"
#可以将执行结果存入一个变量,这样可以直接重复使用,或者导出一个文件。
3\ $string = $array -join "|"
4\ $string
5\ $string | out-file 25.2-data.dat
3.2 -split
从一个分割的字符串中产生一个数组。
例如,假如存在一个包含一行四列数据的文件,在该文件中一制表符对列进行隔离。将该文件的内容显示出来,如下:
1、先建立compute-20220707.txt
内容为一行数据:server01 windows east managed
2、执行Get-Content computer-20220707.txt
3、使用-split 运算符将该内容拆成4个独立的数组元素。
4 -contains 和 -In
4.1 -contains 运算符,主要用于在一个集合中查找是否存在特定对象。
比如,创建包含多个字符串对象的一个集合,然后检查特定对象是否包含在该集合中。
简单举例:
1、 'this is notebook' -contains '*his*'
false
2、 'this is notebook' -like '*his*'
true
解释:在上面其实本意比较运算,-like 结果符合。
实际上-contains 在包含多个字符串对象的一个集合,然后检查特定对象是否包含在该集合中。
举例:
$collection='abc','edf','ghi','jkl'
$collection -contains 'abc'
True
解释:字符集合中包含'abc', 返回true
$collection -contains 'xyz'
False
解释:字符集合中不包含'xyz', 返回false
4.2 -in 可实现相同的功能,字符在集合里包含
$collection='abc','edf','ghi','jkl'
'abc' -in $collection
解释:'abc'包含在字符集合中, 返回true
'xyz' -in $collection
解释:'xyz'不包含在字符集合中, 返回false