PowerShell
这本书旨在涵盖 Windows PowerShell 的使用,它是一个基于 .NET 的面向对象的命令行外壳,旨在取代 Windows 上的批处理脚本、Visual Basic Script 和其他脚本技术。 后来的 PowerShell 版本也适用于 Linux。
PowerShell 是一种基于 .NET 的现代 Windows 脚本技术,它具有完整的编程语言,可以访问 .NET 类,以及基于对象而不是字符流的管道。 它是 Windows 脚本主机中通过 cmd.exe 和 VBScript 进行脚本编写的继任者。
PowerShell 2.0 是 Windows 7 和 Windows Server 2008 R2 的一部分。
PowerShell 5.1 与 Windows 10 周年更新一起发布。
截至 2022 年 6 月,PowerShell 7.2 是最新版本。
您可以在 Tio(在线尝试)中尝试使用 PowerShell,在 Linux 环境中。
链接
- 安装 Windows PowerShell,docs.microsoft.com
- 在 Linux 上安装 PowerShell,docs.microsoft.com
- Tio PowerShell,tio.run
要开始,您可以了解可用 cmdlet 的列表及其别名,并了解如何获取有关它们的帮助。 按 Windows + R,输入“powershell”,PowerShell 控制台启动,然后您可以在其中输入以下示例代码。
获取帮助的示例
- help
- 输出有关帮助系统的帮助。
- help *
- 输出项目列表:别名、cmdlet、帮助主题和其他帮助项目。
- help d
- 输出以 d 开头或包含以 d 开头的单词的别名、cmdlet 和帮助主题列表。
- help d*
- 输出以 d 开头的别名、cmdlet 和帮助主题列表。
- help dir
- 输出有关具有别名“dir”的 cmdlet 的帮助。
- help dir -full
- 输出有关具有别名 dir 的 cmdlet 的完整帮助。
- help Get-ChildItem
- 输出有关该 cmdlet 的帮助。
- help about
- 输出帮助主题列表,即以“about”开头的帮助项目。
- help about_Arithmetic_Operators
- 输出有关算术运算符主题的帮助。
- help about*Ari*
- 输出包含 Ari 作为子字符串的帮助主题列表。
- help *Arith*
- 输出有关算术运算符主题的帮助,只要它是匹配该模式的唯一帮助项目。
更多示例
- $HOME
- 输出变量 HOME 的值。
- Variable
- 输出变量。
- gci env:os
- 输出环境变量 os,它默认不在变量中。
- $PSVersionTable.PSVersion
- 输出 PowerShell 版本。
- "Hello".GetType()
- 输出该值的类型。 关键词:typeof。 GetType() 是字符串对象的函数。 启用反射。
- (7).GetType(); 1.7.GetType(); (1, 2).GetType(); @{"Key" = "Value"}.GetType()
- 输出更多类型。
- "Hello".gettype()
- 函数名称与 cmdlet 名称一样不区分大小写。
- Get-ChildItem | Where {! $_.PSIsContainer} | Sort-Object -Property Length -Descending | Select-Object -Property Length,Name
- 输出当前文件夹中的文件,按大小降序排序,只输出文件长度和文件名。 这是对象管道逐个修改对象流的示例。 请注意,Select-Object -Property Length,Name 实际上不会选择对象,而是构造新的对象,这些对象只包含原始对象的选定属性。
- Get-ChildItem | Get-Member
- 输出对象成员,包括属性和方法。 启用反射。
- 4, 1.5 | Get-Member
- 输出列表中对象类型的对象成员,System.Int32 和 System.Double。
- [uint32]4 |Get-Member
- 在获取对象成员之前,将整数字面量转换为 UInt32 类型。
- (Get-Content MyFile.txt).Length
- 输出文件的行数。 搜索词:“wc -l”,Unix 等效项。 简写为“ (gc _test.txt).Length”。
- Get-Content myfile.txt | Measure-Object -Word
- 输出文件的单词数。
链接
- 在 Y 分钟内学习 X,其中 X=powershell,learnxinyminutes.com
PowerShell 在线文档按版本提供。
链接
- Microsoft.PowerShell.Core 参考,docs.microsoft.com
- Microsoft.PowerShell.Core 参考,适用于 PowerShell 7.2,docs.microsoft.com
- Microsoft.PowerShell.Core 参考,适用于 PowerShell 7.1,docs.microsoft.com
- Microsoft.PowerShell.Core 参考,适用于 PowerShell 5.1,docs.microsoft.com
- Microsoft.PowerShell.Core 参考,适用于 PowerShell 5.0,docs.microsoft.com
- Microsoft.PowerShell.Core 参考,适用于 PowerShell 3.0,docs.microsoft.com
查找 PowerShell 引擎的版本
- $PSVersionTable
链接
- PowerTip:检查 PowerShell 的版本,devblogs.microsoft.com
PowerShell 支持基于 .NET 支持的算术运算。
示例
- (1 + 2) * 3
- 一个简单的整数计算。
- (1 + 2) * 3 / 7
- 支持浮点结果。
- $a = 3/2; $a + 1
- 中间结果可以存储在变量中。
- [Math]::Pow(2, 100); [bigint]::Pow(2, 100)
- 可以使用 Math 和 bigint 进行指数运算; Math 将大数转换为浮点数。 其他常见的浮点函数可用,例如 Sin、Cos、Sqrt 等。
- 0xFE -band -bnot 0xF
- 支持按位算术运算。 其他运算符包括 -bor、-bxor、-shl 和 -shr。
链接
- about_Arithmetic_Operators,docs.microsoft.com
输出当前别名。 别名:gal。
示例
- gal
- 列出所有别名。
- gal g*
- 列出所有以 g 开头的别名。
链接
- Get-Alias,docs.microsoft.com
输出有关帮助项目(如 cmdlet 或主题)的帮助。 它的别名是 help。 可以使用 Update-Help cmdlet 下载项目的帮助。
示例
- Get-Help
- 输出有关帮助系统的帮助。
- Get-Help *
- 输出项目列表:别名、cmdlet、帮助主题和其他帮助项目。
- Get-Help Get-ChildItem
- 获取有关 Get-ChildItem cmdlet 的帮助。
- Get-Help Get-ChildItem -full
- help dir -full
- 与上面相同,但依赖于 help 是 Get-Help 的别名,dir 是 Get-ChildItem 的别名。
- help *
- 输出别名、cmdlet、帮助主题和其他帮助项目的列表。
- help d
- 输出以字母 d 开头或包含以 d 开头的单词的别名、cmdlet 和帮助主题列表。
- help dir
- 输出有关具有别名“dir”的 cmdlet 的帮助。
- help dir -full
- 输出有关具有别名 dir 的 cmdlet 的完整帮助。
- help Get-ChildItem
- 输出有关该 cmdlet 的帮助。
- help about
- 输出帮助主题列表。
- help about_Arithmetic_Operators
- 输出有关算术运算符主题的帮助。
- help about*Ari*
- 输出包含 Ari 作为子字符串的帮助主题列表。
- help *Arith*
- 输出有关算术运算符主题的帮助,只要它是匹配该模式的唯一帮助项目。
链接
在输入中查找字符串模式,充当行的过滤器;与 grep 相关。
示例
- "Cat", "Cat2", "Dog" | Select-String -Pattern "Cat"
链接
- Select-String,docs.microsoft.com
- Select-String,ss64.com
将帮助项或一组帮助项下载到计算机。需要管理员权限。
示例
- Update-Help
- Update-Help -Module Microsoft.PowerShell.Core
链接
- Update-Help,docs.microsoft.com
- Update-Help,ss64.com
- 安装 Windows PowerShell,docs.microsoft.com
- PowerShell 文档,docs.microsoft.com
- Microsoft.PowerShell.Core 参考,docs.microsoft.com
- Windows PowerShell 生存指南,social.technet.microsoft.com
- Windows PowerShell 命令的 A-Z 索引,ss64.com
- Windows PowerShell 操作指南和示例,ss64.com
- 在 Y 分钟内学习 X,其中 X=powershell,learnxinyminutes.com
- PowerShell,wikipedia.org
- PowerShell,wikiversity.org
- Powershell 速查表,由 James Hedges 提供,gitlab.com
- 类别:PowerShell,rosettacode.org - 许多任务的示例脚本