PowerShell:你不知道自己需要的面向对象的外壳

主要观点:PowerShell 是微软的交互式外壳和脚本语言,面向对象,有 Windows PowerShell(5.1)和 PowerShell(7.x)两种产品,可在多种操作系统上使用,对象处理能力强,能进行多种文件系统操作和严肃脚本编写,可使用.NET 类,有一些 Windows 相关技巧,能启动子进程与其他命令交互,有个人偏好的配置脚本,也有一些不寻常和易混淆的部分及最丑的单元素数组处理。
关键信息

  • Windows PowerShell 是 Windows 内置组件,基于.NET Framework 4.x,图标为蓝色;PowerShell(7.x)原名 PowerShell Core,是独立应用,基于.NET(原.NET Core),图标为黑色,Windows PowerShell 开发在 PowerShell(Core)出现后停止。
  • PowerShell 中dir命令返回对象数组,可通过Get-ChildItem等命令进行文件系统操作,如获取特定文件的总大小等。
  • 可编写脚本生成软件物料清单(SBOM),处理.csprojpackage.json文件获取包和版本信息。
  • PowerShell 基于.NET,可访问.NET 标准库,能加载.NET DLL 并使用其中的类,如System.Collections.Generic.HashSet
  • 可利用 COM 控制 Internet Explorer,PowerShell 还能进行各种 Windows 管理任务,如获取磁盘空间剩余百分比。
  • PowerShell 可启动子进程,与非 PowerShell 命令交互,有多种内容检查运算符。
  • 有个人的 profile 脚本用于添加一些 Unix 习惯行为和 Tab 完成功能。
    重要细节
  • 安装现代 PowerShell 的链接:WindowsLinuxmacOS
  • 在处理单元素数组时,(Get-ChildItem).Length在只有一个文件时返回文件大小,有零个文件时返回$null,需用@(Get-ChildItem).Length确保返回数组。
  • 在处理包含空格的路径时,需使用调用运算符&,PowerShell 的 tab 完成会根据需要添加&
  • 函数调用有两种语法,调用函数/cmdlet 可使用 shell 风格语法,调用方法使用更传统语法,名称在两种情况下都不区分大小写。
  • 逃逸字符是反引号,反斜杠是 Windows 路径分隔符。
阅读 25
0 条评论