Powershell - 脚本

Windows PowerShell 是专为系统管理而设计的命令行 shell脚本语言。 它在 Linux 中的类似物称为 Bash 脚本。 Windows PowerShell 基于 .NET Framework 构建,可帮助 IT 专业人员控制和自动化管理 Windows 操作系统和 Windows Server 环境上运行的应用程序。

Windows PowerShell 命令称为cmdlet,可让您从命令行管理计算机。 Windows PowerShell 提供程序使您可以像访问文件系统一样轻松地访问数据存储,例如注册表和证书存储。

此外,Windows PowerShell 还拥有丰富的表达式解析器和完全开发的脚本语言。 简而言之,您可以完成使用 GUI 执行的所有任务以及更多任务。 Windows PowerShell Scripting 是一种完全开发的脚本语言,具有丰富的表达式解析器/

功能

  • Cmdlet − Cmdlet 执行常见的系统管理任务,例如管理注册表、服务、进程、事件日志以及使用 Windows Management Instrumentation (WMI)。

  • 以任务为导向 − PowerShell 脚本语言是基于任务的,并为现有脚本和命令行工具提供支持。

  • 一致的设计 − 由于 cmdlet 和系统数据存储使用通用语法并具有通用命名约定,因此数据共享很容易。 一个 cmdlet 的输出可以通过管道传输到另一个 cmdlet,无需任何操作。

  • 使用简单 − 简化的基于命令的导航使用户可以像文件系统导航一样导航注册表和其他数据存储。

  • 基于对象 − PowerShell拥有强大的对象操作能力。 对象可以直接发送到其他工具或数据库。

  • 可扩展接口 − PowerShell 是可定制的,因为独立软件供应商和企业开发人员可以使用 PowerShell 构建自定义工具和实用程序来管理其软件。

变量

PowerShell 变量是命名对象。 由于 PowerShell 处理对象,因此这些变量也用于处理对象。

创建变量

变量名称应以 $ 开头,并且名称中可以包含字母数字字符和下划线。 可以通过键入有效的变量名称来创建变量。

在 PowerShell ISE 控制台中键入以下命令。 假设您位于 D:\test 文件夹中。

$location = Get-Location

这里我们创建了一个变量 $location 并将 Get-Location cmdlet 的输出分配给它。 它现在包含当前位置。

使用变量

在 PowerShell ISE 控制台中键入以下命令。

 $location

输出

您可以在 PowerShell 控制台中看到以下输出。

Path                                                                                    
----                                                                                    
D:\test                                                                                 

获取变量信息

Get-Member cmdlet 可以告诉正在使用的变量的类型。 请参阅下面的示例。

 $location | Get-Member

输出

您可以在 PowerShell 控制台中看到以下输出。

   TypeName: System.Management.Automation.PathInfo

Name          MemberType   Definition                                               
----          ----------   ----------                                               
Equals        Method       bool Equals(System.Object obj)                           
GetHashCode   Method       int GetHashCode()                                        
GetType       Method       type GetType()                                           
ToString      Method       string ToString()                                        
Drive         Property     System.Management.Automation.PSDriveInfo Drive {get;}    
Path          Property     System.String Path {get;}                                
Provider      Property     System.Management.Automation.ProviderInfo Provider {get;}
ProviderPath  Property     System.String ProviderPath {get;}