当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell 哪里对象 |创建 PowerShellWhere 对象的两种方法

作者:精品下载站 日期:2024-12-14 04:56:03 浏览:12 分类:玩电脑

PowerShell 哪里对象 |创建 PowerShellWhere 对象的两种方法


[玩转系统] PowerShell 哪里对象 |创建 PowerShellWhere 对象的两种方法

PowerShellWhere对象简介

Where-Object 允许我们根据特定对象、文件、进程、服务等的某些属性来选择或获取该对象、文件、进程、服务等。这些属性可能是大小、名称、日期等。让我举个例子,假设您有一个包含 1000 个文件的文件夹,并且您想要对最近创建的文件或最先创建的文件执行某些任务。所以我们可以明智地选择文件日期。另一个例子,假设我们要选择所有文件中最大的文件,那么我们可以将文件大小的条件放在where中。我们还可以编写条件来获取有关任何服务、包、进程等的信息。在本主题中,我们将了解 PowerShellWhere-Object。

如何在 Powershell 中创建Where对象命令?

创建Where-Object命令主要有两种方法,如下所示。

1. 脚本块

我们可以使用脚本块来定义属性名称、比较运算符和属性值。 where-object 命令将检查并返回哪个块为 true 的对象。

Get-Process | Where-Object {comparison condition}

2、对比说明

这样,我们就可以像使用任何普通编程一样直接使用比较。

Get-Process | Where-Object condition

语法:

获取所有语法和参数的一个非常简单的方法是运行以下命令。下面给出的所有语法将在不同的情况下使用。我们将讨论其中一些。

Get-Help Where-Object -full

[玩转系统] PowerShell 哪里对象 |创建 PowerShellWhere 对象的两种方法

Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] [-InputObject <psobject>] [-EQ] [<CommonParameters>]
Where-Object [-FilterScript] <Here we write script containing conditions> [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -GE [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CEQ [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -NE [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CNE [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -GT [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CGT [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -LT [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CLT [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CGE [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -LE [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CLE [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -Like [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CLike [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -NotLike [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CNotLike [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -Match [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CMatch [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -NotMatch [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CNotMatch [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -Contains [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CContains [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -NotContains [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CNotContains [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -In [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CIn [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -NotIn [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CNotIn [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -Is [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -IsNot [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <Property like date,size etc> -Not [-InputObject <psobject>] [<CommonParameters>]

PowerShellWhere对象的参数

下面列出了参数。

1. CContains:它检查是否完全匹配,这意味着仅当完全匹配的对象有效时它才会返回一个对象。

下面给出了它的一般语法。

Get-Process | where servicename/processname/etc -CContains "exact matching name

2. CEQ:如果相同的属性值相同则只有它获取对象

3. CGE:如果属性值大于或等于传递的值,则只有它获取对象。

4. CGT:如果属性值大于传递的值,则只有它获取对象。请记住,此条件完全区分大小写。

5. CIn:这将检查包含,即如果属性值包含则获取对象

6. CLE:这将检查是否小于或等于传递的值。

7. CLT:这将检查是否小于传递的值。

8. Clike:这将检查匹配属性值,它还包括通配符。此外,此操作区分大小写。

9. CMatch:这个属性是基于正则表达式的,所以在where条件下我们也可以用一些正则表达式来检查。

10. CNE:如果我们尝试查找不同的传递值,则此命令将与 where 条件一起使用。

11. CNotContains:如果属性值与传递的值不完全匹配,它将获取对象。该命令条件区分大小写。

示例

以下是实施下面提到的 PowerShell 其中对象的示例

例子#1

在下面的示例中,我们检查名称“nginx”完全匹配的服务。它返回所有正在运行的名为 nginx 的服务。请参考下面的屏幕示例。

Get-Process | where ProcessName -CContains "nginx"

[玩转系统] PowerShell 哪里对象 |创建 PowerShellWhere 对象的两种方法

[玩转系统] PowerShell 哪里对象 |创建 PowerShellWhere 对象的两种方法

例子#2

在此命令中,我们使用 -eq 来获取具有特定版本的所有匹配包。首先,我们通过运行命令 Get-PackageProvider 显示所有版本,然后在脚本块中绕过版本精确搜索特定版本。

Get-PackageProvider
Get-PackageProvider | Where-Object {$_.Version -eq "3.0.0.1"}
Get-PackageProvider | Where-Object {$_.Version -eq "2.1.3.0"}

[玩转系统] PowerShell 哪里对象 |创建 PowerShellWhere 对象的两种方法

示例#3

在这个例子中,我们想知道名称以“n”开头的所有正在运行的进程。在输出中,我们可以看到它显示“node nginx networkmanager netns, etc”。您可以在自己的系统上尝试一下,根据系统上运行的名称以“n”开头的进程,您将获得不同的输出。这个Where-object示例是阻塞脚本类型。

Get-Process | Where-Object {$_.ProcessName -Match "^n.*"}

[玩转系统] PowerShell 哪里对象 |创建 PowerShellWhere 对象的两种方法

示例#4

正如我们在介绍时讨论的,Where-Object 有两种类型,一种是块脚本,另一种是变体。在示例3中我们讨论了块脚本,在这个示例中,我们正在了解caparison语句块。

Get-Process | Where-Object ProcessName -Match "^n.*"

[玩转系统] PowerShell 哪里对象 |创建 PowerShellWhere 对象的两种方法

结论

Where-Object用于根据一定条件获取某些对象、文件、进程、服务等,这些条件可以是对象、文件、进程、服务的属性、名称、大小或日期。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯