1. Tab键补全
有时候不记得指令全称,只记得开头几个字母,使用Tab键可显式建议选项,再次按Tab可以往后翻,Shift+Tab可以往前翻。
2. 查看指令类型
Get-Command -Name Get-Alias
指令是遵循一定的格式规范的,如动词加名词,下面的指令查询动词为 Get ,名词为 Content 的指令
Get-Command -Verb Get -Noun Content
还可以使用通配符查询
Get-Command -Name *-Content
3. 查看帮助
Get-Help Add-Content
4. 编程功能
PowerShell不单单是一个命令行工具,它还可以进行编程,可以在交互式窗口运行,也可以写成脚本,执行一些自动化的任务。
(1)启用严格模式,以检查错误
Set-StrictMode -Version Latest
(2)变量
变量包括内置变量和自定义变量,比如可以查看内置变量的值:
$MaximumHistoryCount
声明并初始化一个整数类型的自定义变量
$num=1
查看变量类型(是不是很像C#,虽然PowerShell不限制大小写,getType、gettype也可以获取类型,但是使用跟C#一样的风格,就不会那么乱了)
$num.GetType()
查找变量,不带参数的话就列出内存中所有的变量
Get-Variable -Name num
(3)数据类型
布尔值
$true $false
整数和浮点数
整数类型默认是 Int32,浮点数类型默认是 Double,若要把浮点数转成整数,可以使用下面的语句(四舍五入):
[Int32]$num
字符串
字符串可以使用单引号,也可以使用双引号,如果是插值字符串(在其中插入一些变量值)就必须使用双引号
str="num=num"
如果变量后面紧接非空字符,为了避免无法识别变量,可以使用大括号把变量名括起来
"num=${num}xxx"
对象
PowerShell也有类似C#中表示空值的 null,不过要加美元符号:$null,因为 PowerShell 中一切皆对象,所以值类型也可以赋值为 $null,反过来讲,数字也是对象,可以使用下面的指令查看对象的成员:
Get-Member -InputObject $num
如果只查看属性,不看方法的话,可以使用下面的指令(因为数字只有方法,没有属性,所以可以先设置一个字符串类型的值,再用下面的指令查看):
Select-Object -InputObject $num -Property *
若要进一步查看某个成员的详细信息,比如查看 Equals 方法,使用指令:
Get-Member -InputObject $num -Name Equals
自定义对象(PSCustomObject 是 PowerShell 内置的一个类,不是我随意起名哦)
$myObj = [PSCustomObject]@{Name='Tom';Age=33}
$myObj.Age
数组
创建数组
$colorPicker=@('red', 'green', 'blue')
访问数组
$colorPicker[0]
范围运算符,如1到10可以表示为 1..10(首尾都包含),利用该运算符可以访问数组的子集:
$colorPicker[0..1]
往数组添加元素,添加单个元素或者添加一个数组都可以
$colorPicker += 'yellow'
$colorPicker += @('pink', 'cyan')
ArrayList
数组一般用来存储数量不变的一组对象,虽然可以添加元素,单每次都要新建一个数组,再销毁旧的数组,大型数组的增删性能就比较差了,这时候使用 ArrayList 比较合适:
$colorPicker=[System.Collections.ArrayList]@('red', 'green', 'blue', 'yellow')
$colorPicker.Add('pink')
$colorPicker.Remove('red')
字典
字典是用于存储键值对的数据结构,创建方式如下:
$colors=@{
'red' = 0xFF0000;
'green' = 0x00FF00;
'blue' = 0x0000FF
}
访问字典
$colors['blue']
$colors.blue
往字典添加元素
$colors.Add('yellow', 0xFFFF00)
$colors.Add['yellow'] = 0xFFFF00
从字典中删除元素
$colors.Remove('red')