Powershell - 脚本

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

Windows PowerShell 命令(称为 cmdlet)允许你从命令行管理计算机。Windows PowerShell 提供程序允许你像访问文件系统一样轻松访问数据存储,例如注册表和证书存储。

此外,Windows PowerShell 还具有丰富的表达式解析器和完全开发的脚本语言。因此,简单来说,你可以完成使用 GUI 执行的所有任务等等。Windows PowerShell 脚本是一种完全开发的脚本语言,具有丰富的表达式解析器/

特征

  • 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;}