微软powershell帮助文档
https://learn.microsoft.com/zh-cn/powershell/scripting/overview?view=powershell-7.2
变量的使用
支持内插方式使用,单引号不支持内插,内插时,变量和字符之间需要空格
1 | $a="aaa" |
输出aaa xxx
通过${变量名}
内插时,不需要空格
1 | $a="111" |
输出aaa111bbb
给变量添加多属性并赋值,分号分隔
1 | $a=@{name="aa";name2="bb"} |
输出aa
变量有序
1 | $a=[ordered]@{name="aa";name2="bb"} |
对寄存变量追加属性并赋值
1 | $array = @(1,'hello') |
获取变量成员
1 | $a | Get-Member |
数组的使用
1 | $array = @(1,'hello') |
输出1
换行符的使用(`)
当一行代码很长时,想手动折行,并且让程序解析成一行代码,请使用 ` (也叫重音符)
换行符 `n
1 | "aa`nbb" |
输出
1 | aa |
tab键 `t
1 | "aa`tbb" |
输出aa bb
产看帮助文档
当不知道命令如何使用时,可以使用Get-Help
命令
1 | Get-Help Get-Content |
Get-Content的使用
Get-Content
查看文件内容,-Encoding
编码参数不指定时,查看文件编码为系统编码
Import-Csv的使用
Import-Csv
参看csv形式文件的命令,可以指定编码-Encoding
以及区切符Delimiter
当Import-Csv
读取的文件有多行时(大于等于2行,不包含页眉),Import-Csv
返回的结果集会出现length
属性,显示文件有多少行。
多行时,Import-Csv
会以数组形式存放信息,但是只有一行数据时,不会以数组形式存放信息,也就没有length
属性。
遍历文件时,尽量避免使用Import-Csv
的length
属性,当文件只有一行时,length
属性不存在。
解决方法就是使用foreach
遍历文件
1 | $File = Import-Csv -Path $Path |
运算符的使用
-eq
等于-ne
不等于-gt
大于-lt
小于-ge
大于等于-le
小于等于-and
且运算-or
或运算-not
非运算
注释使用
1 | #单行注释 |
调试
powershell本身是有调试功能的:Windows PowerShell ISE
支持打断点,逐行执行
打断点:F9
逐行执行:F10
执行下一断点:F5
判定条件的使用
这里简单说一下if和else if
1 | $a=16 |
需要注意的是elseif
之间没有空格
管道输出符|
1 | Get-Children | Out-File |
将Get-Children
输出的结果传递给Out-File