PowerShell学习记录
一、简介——连接
Powershell 是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境。你可以把它看成是命令行提示符cmd.exe的扩充,不对,应当是颠覆。 powershell需要.NET环境的支持,同时支持.NET对象。微软之所以将Powershell 定位为Power,并不是夸大其词,因为它完全支持对象。其可读性,易用性,可以位居当前所有shell之首。 当前powershell有四版本,分别为1.0,2.0,3.0 ,4.0
- 如果您的系统是window7或者Windows Server 2008,那么PowerShell 2.0已经内置了,可以升级为3.0,4.0。
- 如果您的系统是Windows 8 或者Windows server 2012,那么PowerShell 3.0已经内置了,可以升级为4.0。
- 如果您的系统为Windows 8.1或者Windows server 2012 R2,那默认已经是4.0了。
二、打开PowerShell
我的电脑是win10系统,在win图标右键->选择Windows PowerShell,即可打开。
三、PowerShell脚本及编辑工具
PowerShell脚本命令可直接在窗口输入
eg. Write-Host "Hello Word!"
对于PowerShell的编辑工具,可直接双击使用记事本编辑,但是对于新手可使用VSCode进行开发。
下载链接
下载好后可在扩展中搜索powershell,安装第一个扩展就可以显示powershell智能提示了。
四、如何运行制作好的PowerShell脚本
1、如果脚本路径中包含空格,需要使用& "脚本路径"来执行,eg. & "C:\P A T H\\script.ps1"
2、使用cd命令切换到脚本所在目录,再使用执行 ./脚本名.ps1
2、若文件路径不包含空格,可直接输入文件路径执行,eg. C:/path/test.ps1
五、简单语法介绍
大致知识点介绍,详细介绍可在下边的教程网址学习。
罗列一些常用命令知识点,定义变量、管道、条件判断、循环、函数
1、定义变量
定义变量:$info = "你好"
输出变量:$info
2、管道
在Shell中一个重要的基本概念就是管道(pipeline),即在一组命令中,输出的命令结果成为下一个命令的输入参数。管道的概念与真实生活中的生产线比较相似:在不同的生产环节进行连续的再加工。
“Get-ChildItem”意思是获取当前路径的所有项目,“|Sort-Object -Descending Name”意思是查看上一步结果,按照Name进行倒叙排列。
常用的管道命令
Compare-Object: 比较两组对象。
ConvertTo-Html: 将 Microsoft .NET Framework 对象转换为可在 Web 浏览器中显示的 HTML。
Export-Clixml: 创建对象的基于 XML 的表示形式并将其存储在文件中。
Export-Csv: 将 Microsoft .NET Framework 对象转换为一系列以逗号分隔的、长度可变的 (CSV) 字符串,并将这些字符串保存到
一个 CSV 文件中。
ForEach-Object: 针对每一组输入对象执行操作。
Format-List: 将输出的格式设置为属性列表,其中每个属性均各占一行显示。
Format-Table: 将输出的格式设置为表。
Format-Wide: 将对象的格式设置为只能显示每个对象的一个属性的宽表。
Get-Unique: 从排序列表返回唯一项目。
Group-Object: 指定的属性包含相同值的组对象。
Import-Clixml: 导入 CLIXML 文件,并在 Windows PowerShell 中创建相应的对象。
Measure-Object: 计算对象的数字属性以及字符串对象(如文本文件)中的字符数、单词数和行数。
more: 对结果分屏显示。
Out-File: 将输出发送到文件。
Out-Null: 删除输出,不将其发送到控制台。
Out-Printer: 将输出发送到打印机。
Out-String: 将对象作为一列字符串发送到主机。
Select-Object: 选择一个对象或一组对象的指定属性。它还可以从对象的数组中选择唯一对象,也可以从对象数组的开头或末尾选
择指定个数的对象。
Sort-Object: 按属性值对象进行排序。
Tee-Object: 将命令输出保存在文件或变量中,并将其显示在控制台中。
Where-Object: 创建控制哪些对象沿着命令管道传递的筛选器。
3、条件判断
比较运算符
-eq :等于
-ne :不等于
-gt :大于
-ge :大于等于
-lt :小于
-le :小于等于
-contains :包含
-notcontains :不包含
布尔运算
-and :和
-or :或
-xor :异或
-not :逆
求反
求反运算符为-not
条件判断语法
Where-Object
IF-ElseIf-Else
Switch
4、循环
ForEach-Object
Foreach
Do While
For
Switch
5、函数
函数定义很简单
Function FuncName (args[]) { code; } eg. Function test($name,$age) { if($name -ne $null -and $age -ne $null){ Write-Host "输入的name参数为:$name"; Write-Host "输入的age参数为:$age"; }elseif($name -ne $null){ Write-Host "输入的name参数为:$name"; }elseif($age -ne $null){ Write-Host "输入的age参数为:$age"; }else{ Write-Host "未传入参数"; } } # 调用test函数并传入参数 test -age "23" -name "张三"
六、脚本教程
目前我是在以下两个网站学习的,主要是简单语法学习。
PowerShell中文博客 https://www.pstips.net/
By听雨的人