跳转到内容

PowerShell

25% developed
来自维基教科书,开放世界中的开放书籍

这本书旨在涵盖 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 环境中。

链接

要开始,您可以了解可用 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
    • 输出文件的单词数。

链接

在线文档

[编辑 | 编辑源代码]

PowerShell 在线文档按版本提供。

链接

查找 PowerShell 引擎的版本

  • $PSVersionTable

链接

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。

链接

Get-Alias

[编辑 | 编辑源代码]

输出当前别名。 别名:gal。

示例

  • gal
    • 列出所有别名。
  • gal g*
    • 列出所有以 g 开头的别名。

链接

输出有关帮助项目(如 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*
    • 输出有关算术运算符主题的帮助,只要它是匹配该模式的唯一帮助项目。

链接

Select-String

[编辑 | 编辑源代码]

在输入中查找字符串模式,充当行的过滤器;与 grep 相关。

示例

  • "Cat", "Cat2", "Dog" | Select-String -Pattern "Cat"

链接

Update-Help

[编辑 | 编辑源代码]

将帮助项或一组帮助项下载到计算机。需要管理员权限。

示例

  • Update-Help
  • Update-Help -Module Microsoft.PowerShell.Core

链接

[编辑 | 编辑源代码]
华夏公益教科书