- PowerShell 教程
- PowerShell - 首页
- PowerShell - 概述
- PowerShell - 环境设置
- PowerShell - Cmdlet
- PowerShell - 文件和文件夹
- PowerShell - 日期和时间
- PowerShell - 文件 I/O
- PowerShell - 高级 Cmdlet
- PowerShell - 脚本编程
- PowerShell - 特殊变量
- PowerShell - 运算符
- PowerShell - 循环
- PowerShell - 条件语句
- PowerShell - 数组
- PowerShell - 哈希表
- PowerShell - 正则表达式
- PowerShell - 反引号
- PowerShell - 方括号
- PowerShell - 别名
- PowerShell 有用资源
- PowerShell - 快速指南
- PowerShell - 有用资源
- PowerShell - 讨论
PowerShell - 脚本编程
Windows PowerShell 是一款专为系统管理员设计的命令行 shell 和脚本语言。其在 Linux 中的类似物称为 Bash 脚本。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;}