PowerShell Out-GridView
最后修改:2025 年 2 月 15 日
在本文中,我们将介绍PowerShell中的Out-GridView
cmdlet。此cmdlet在一个交互式网格窗口中显示数据。它允许进行排序、过滤和选择数据。
Out-GridView基础知识
Out-GridView
cmdlet将输出发送到单独窗口中的图形表。它接受来自管道或参数的输入。该网格提供交互式功能,例如列排序和数据过滤。这使其在可视化检查和选择数据集时非常有用。
Out-GridView基本用法
使用Out-GridView
的最简单方法是将其通过管道命令输出。这将在可滚动、可排序的网格窗口中显示数据。网格默认包含输入对象的所有属性。您可以在不修改原始源的情况下与数据进行交互。
Get-Process | Out-GridView
此命令在网格视图中显示所有正在运行的进程。您可以通过单击列标题按任何列进行排序。在脚本继续执行时,窗口保持交互状态。
使用Out-GridView过滤数据
Out-GridView
包含内置的过滤功能。单击任何列标题中的过滤图标可访问过滤选项。您可以按特定值或文本模式进行过滤。网格会立即更新以仅显示匹配的行。
Get-Service | Out-GridView
这将在网格中显示所有系统服务。使用过滤框按状态或名称缩小服务范围。过滤是动态的,并在您键入时应用。可以同时过滤多个列。
选择和返回数据
-PassThru
参数允许选择项目并将其返回到管道。关闭网格窗口后,选定的项目可用于进一步处理。这使得脚本中的交互式选择工作流程成为可能。
Get-ChildItem C:\Windows\*.exe | Out-GridView -PassThru | ForEach-Object { Write-Host "Selected file: $($_.FullName)" }
此脚本在网格中显示Windows可执行文件。关闭窗口后,将处理选定的文件。ForEach-Object
cmdlet仅接收选定的项目。这创建了一个交互式文件选择工具。
自定义网格标题
-Title
参数为网格设置自定义窗口标题。这有助于在打开多个网格窗口时识别它们。标题显示在窗口的标题栏和任务栏条目中。
Get-Process | Select-Object Name, Id, CPU | Out-GridView -Title "Process Monitor"
这以自定义窗口标题显示进程信息。网格中仅显示选定的属性。标题使窗口的目的更加清晰。这在具有多个网格的复杂脚本中特别有用。
使用Out-GridView创建选择菜单
Out-GridView
可以在脚本中创建交互式选择菜单。通过与-PassThru
结合使用,用户可以选择选项。选择决定了脚本的后续操作。这提供了一种替代文本菜单的图形化方法。
$options = @( [pscustomobject]@{Name="Restart"; Description="Restart the service"} [pscustomobject]@{Name="Stop"; Description="Stop the service"} [pscustomobject]@{Name="Start"; Description="Start the service"} ) $action = $options | Out-GridView -Title "Select Action" -PassThru Write-Host "You selected: $($action.Name)"
此脚本在网格中提供服务操作菜单。用户的选择存储在$action
中以供进一步处理。描述列为每个选项提供了附加的上下文。
多选模式
默认情况下,Out-GridView
允许选择多个项目。按住Ctrl键可选择不连续的项目,按住Shift键可选择范围。-PassThru
参数返回所有选定的项目。这使得对选定的数据执行批量操作成为可能。
$selected = Get-Process | Out-GridView -PassThru $selected | Stop-Process -WhatIf
此脚本允许用户选择多个进程来停止。-WhatIf
参数显示实际停止进程之前会发生什么。删除它即可执行实际操作。请务必向用户确认破坏性操作。
等待网格关闭
-Wait
参数会暂停脚本执行,直到网格窗口关闭。这可以确保后续命令仅在用户交互后运行。没有它,脚本会在显示网格后立即继续。
Get-Service | Out-GridView -Title "Service Status" -Wait Write-Host "Grid window closed - continuing script"
此脚本等待用户关闭服务网格后继续。消息仅在网格窗口关闭后显示。此行为对于顺序交互式脚本很有用。
来源
在本文中,我们介绍了PowerShell中的Out-GridView cmdlet。
作者
列出 所有 PowerShell 教程。