PowerShell学习记录

时间:2023-03-09 16:09:30
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脚本及编辑工具

PowerShell脚本命令可直接在窗口输入

eg.
Write-Host "Hello Word!"

PowerShell学习记录

对于PowerShell的编辑工具,可直接双击使用记事本编辑,但是对于新手可使用VSCode进行开发。

PowerShell学习记录     下载链接

下载好后可在扩展中搜索powershell,安装第一个扩展就可以显示powershell智能提示了。

PowerShell学习记录

四、如何运行制作好的PowerShell脚本

1、如果脚本路径中包含空格,需要使用& "脚本路径"来执行,eg.  & "C:\P A T H\\script.ps1"

2、使用cd命令切换到脚本所在目录,再使用执行  ./脚本名.ps1

2、若文件路径不包含空格,可直接输入文件路径执行,eg.  C:/path/test.ps1

五、简单语法介绍

大致知识点介绍,详细介绍可在下边的教程网址学习。

罗列一些常用命令知识点,定义变量、管道、条件判断、循环、函数

1、定义变量

定义变量:$info = "你好"

输出变量:$info

PowerShell学习记录

2、管道

在Shell中一个重要的基本概念就是管道(pipeline),即在一组命令中,输出的命令结果成为下一个命令的输入参数。管道的概念与真实生活中的生产线比较相似:在不同的生产环节进行连续的再加工。

PowerShell学习记录

“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 "" -name "张三"

六、脚本教程

目前我是在以下两个网站学习的,主要是简单语法学习。

PowerShell中文博客  https://www.pstips.net/

微软官方的PowerShell文档  网址