什么是Windows PowerShell脚本?

PowerShell是一种脚本语言,可以帮助您简单可靠地自动执行计算机任务。了解如何使用它开始为您的Windows PC构建脚本。

PowerShell脚本概述

要开始在Windows上编写简单的PowerShell脚本,您需要了解三件事:

  • Cmdlet:单函数命令。
  • 参数:指定Cmdlet/命令的内容、时间、位置和方式。
  • 管道:获取Cmdlet的输出及其参数,并将其连接到其他Cmdlet和函数。

将这三者结合起来,您就可以创建简单的脚本来帮助实现任务的自动化。

下面是一个示例管道,展示了如何组合多个Cmdlet来完成一个任务:

什么是Windows PowerShell脚本?

要在PowerShell中运行此管道,您可以使用类似于以下命令:

获取对象土豆|剥离对象|Chop—Object Chips| Cook—Object DeepFry `|放置—物体碗

详细介绍Cmdlet

与任何脚本语言一样,PowerShell预构建了用于操作对象和执行各种任务的命令。PowerShell中的这些基本命令称为Cmdlet。

Cmdlet(发音为Command-let)是PowerShell环境中使用.dll扩展名的小型、单功能命令。它们是轻量级代码,由于它们的编译性质,执行速度比函数快。

PowerShell上有数千个Cmdlet可用。你不需要把它们都学完。您可以从学习一些基本的PowerShell Cmdlet开始,然后在您的脚本编写过程中继续学习。要查看您的计算机上已安装的Cmdlet,请运行:

获取命令

如果您浏览一下结果,您会注意到它们遵循动词-名词命名约定。这使得理解某个Cmdlet的作用变得更容易。

例如,Get-Command提供PowerShell中可用命令的列表。Get-Process获取当前活动的进程,而Copy-Item将一个或多个文件复制到特定目录。

Cmdlet还附带了大量的文档,包括示例、使用说明和功能说明。

要了解有关特定Cmdlet的更多信息以及如何使用它,请运行:

Get—Help名称<>

PowerShell参数解释

Cmdlet可以接受参数来改变它们的行为。运行Cmdlet或函数时,可以提供参数值来指定每个PowerShell命令运行的内容、时间、位置以及方式。

例如,Get-Process将获取并列出操作系统中的所有活动进程:

什么是Windows PowerShell脚本?

但是,如果您只想获得特定的流程,该怎么办呢?您可以使用参数来执行此操作。例如,若要获取所有Slack进程,可以将Name参数与Get-Process Cmdlet一起使用:

获取进程名称松弛

然后,您将只看到名称为”slock”的进程:

什么是Windows PowerShell脚本?

有些参数是”位置”的,这意味着它们的名称是可选的。在这种情况下,
获取进程名称松弛

获取过程松弛
做同样的事情。

每个Cmdlet将接受不同类型的参数。使用Get-Help命令可以查看语法部分中接受的Cmdlet参数。

获取-帮助-获取过程

您将看到一个列表,列出了可以运行给定Cmdlet的所有可能方法:

什么是Windows PowerShell脚本?

在这种情况下,Get—Process Cmdlet接受Name、Id、Computename、Module、FileVersionInfo等参数以及其他公共参数。这里的符号表示:

符号 名称 意义
空白 参数不接受输入
连字符 表示参数名称
<> 尖括号 文本的占位符
[] 托架 可以接受一个或多个值的参数
{} 牙套 参数接受一组值

接受输入的参数将指示它们需要的数据类型,如字符串、整数、布尔值或日期时间。例如,这是:

Get—Process [[—Name] string []]<>

表示Name参数接受一个或多个字符串值,而这:

get—Process—Id int []<>

表示Id参数接受一个或多个整数值。

前面的Get—Process示例使用Name参数来缩小结果范围。但是,如果你想把它缩小到一个更具体的进程,你可以使用ID参数,它需要一个整数,如它的语法所述。

Get—Process—Id 3016

然后,您应该在列表中只看到一个进程:

什么是Windows PowerShell脚本?

创建管道

PowerShell将所有数据视为对象。为了构建脚本,这些对象流经由管道符号(|)。选择正确的Cmdlet并使用管道以逻辑顺序连接它们对于有效的脚本至关重要。

假设您正在创建一个脚本来排序和显示一个文件夹中占用最多存储空间的五个文件。有更强大的方法来创建文件排序脚本,但下面的一行代码很容易理解:

什么是Windows PowerShell脚本?

要在PowerShell中执行此操作,请使用类似于以下的管道:

Get—ChildItem—Path "C:Directory"—文件|排序对象长度降序`|选择—对象—前5|表名,长度—自动调整大小

将管道保存为PS1脚本

现在我们有了一个工作管道,你可以将它保存为PS1脚本文件,这样你就不必每次使用它都要输入它了。

创建PS1文件的最简单方法是将脚本粘贴到记事本中,并使用.ps1扩展名保存文件。

什么是Windows PowerShell脚本?

创建PS1文件后,您可以在PowerShell中通过运行来使用它。/ ScriptName.ps1:

什么是Windows PowerShell脚本?

如果
您会收到权限错误
,最快的解决方法是在运行脚本时以管理员身份运行PowerShell。

恭喜!您现在可以创建PowerShell PS1脚本。

PowerShell也可以在Linux和macOS上使用

PowerShell是任何人都可以学习的最好的初学者脚本语言之一。虽然PowerShell过去仅限于Windows,但现在PowerShell的更新版也可以在MacOS和许多Linux发行版上使用!这使得PowerShell更具吸引力,因为您可以将您的知识从Windows转移到其他操作系统。

大鱼的头像

这个人很懒,什么都没有留下~

延伸阅读:

Windows 记事本终于获得自动更正和拼写检查功能

在首次引入 Windows 大约 41 年后,记事本终于更新了自动更正和拼写检查功能。这家科技巨头于今年 3 月推出了拼...

大鱼的头像
大鱼
2024 年 7 月 9 日
Ubuntu 的 apt 和 apt-get 命令有什么区别?

在Ubuntu及其他基于Debian的Linux发行版中,软件包管理是系统维护的一个重要方面。apt和apt-get是两...

大鱼的头像
大鱼
2024 年 6 月 26 日
Ubuntu远程桌面:如何设置和连接

远程桌面是一种允许您远程接管和使用另一台计算机的服务。在Ubuntu中,可以在图形客户端机器上启用它来控制主机。此功能对...

大鱼的头像
大鱼
2024 年 5 月 7 日
苹果公司在“放开”iPad活动上宣布的4款产品(以及你错过了什么)

利用当天的视频 苹果2024年5月的“放开”活动标志着iPad系列的一个重要里程碑,该公司推出了自成立以来最重大的升级。...

大鱼的头像
大鱼
2024 年 5 月 19 日
将照片从iPhone传输到iPhone的8种快速方法

已升级到新iPhone,是否要从旧设备中移动所有照片?或者你只是想从别人的iPhone上转移照片?以下是在两部iPhon...

大鱼的头像
大鱼
2024 年 5 月 19 日