从零开始学PowerShell(5) 自定义格式化信息

PowerShell实现Windows右下角Toast通知:零依赖自动化脚本指南 在Windows自动化与系统管理中,桌面通知是提升脚本交互体验的关键技术。其原理是通过调用系统原生组件(如.NET Framework的Windows Forms)创建图形化界面元素,实现非侵入式的信息提示。这项技术的核心价值在于将后台脚本的执行状态可视化,无需依赖第三方软件即可完成轻量级通知。在应用场景上,它特别适合系统管理员进行任务完成提醒、开发者监控构建状态,以及自动化流程中的关键节点反馈。本文聚焦于利用PowerShell脚本实现右下角Toast通知,详细解析了从基础脚本编写到集成到批量任务与自动化 阅读详情

我们已经基本了解了大部分在PowerShell中的格式化输出命令的使用,但是我们之前做的内容的格式化也仅仅是针对现有输出的内容做一些排版格式的输出,在某些场景需求下,这样的排版还是显得过于单调。所以今天要讲一下如何自定义格式化信息。这是个很有趣的话题,所以单独放在了一篇文章里讲。

PowerShell输出的信息内容其实默认是经过排版的,基本以表单的形式,像下面这样。
这里写图片描述
为了更好的说明自定义格式化信息的用意,我来假设一个场景需求。我需要罗列出Id值大于2000的进程信息,但一定要输出的信息给别人一看就明白,该怎么做呢?我们都知道,表单能让人一眼就看明白主要取决于行列标题,一个清晰明确的行标题名称能给阅读者一目了然的作用,所以我们就要从行列标题下手。

老样子,先放出实现的代码行如下。

Get-Process | Where-Object{$_.Id -gt 2000} | Format-Table ProcessName, @{Expression={$_.Id}; Name="Id>2000"}

我们从输出的信息结果就可以看到,ID那一栏的行标题被我修改为了了Id>2000我可以把这个输出传递给任何需要这个场景的人,他们一看就知道这一列的信息罗列的是Id值大于2000的进程信息。
这里写图片描述
现在让我们来分析下这个命令行到底做了什么,整个命令行的逻辑是一开始我们用Get-Process | Where-Object{$_.Id -gt 2000}完成最基本的条件过滤,过滤出所有Id值大于2000的进程信息。

接下去是关键,我们使用了一个小技巧来自定义格式化我们的输出内容,我们使用了Format-Table ProcessName, @{Expression={$_.Id}; Name="Id>2000"},如果不用自定义的方式我们将会这样写Format-Table ProcessName, Id,这样你可以看出区别了吧。我把Id那一列写成了@{Expression={$_.Id}; Name="Id>2000"}这一行其实是一个哈希表表达式,格式的语法基本是@{Expression={你想修改的属性列};Name="属性列更改后的名称"}。

既然使用的是哈希表的方式来自定义格式化输出,我们就可以直接以自定义哈希表的方式来灵活自定义格式化输出。在PowerShell中定义哈希表的写法是@{},所以我们可以换成如下的方式去赋值。(其实这种方式在PowerShell中也有个专门的技巧说法那就是Splatting,大家如果对Splatting感兴趣可以查看我之前写的使用Splatting方传递参数来更好的了解用法。)

# 将自定义的哈希表表达式赋值给变量CustomColumn
$CustomColumn = @{Expression="Id"; Name="Id>2000"}
# 直接调用变量即可
Get-Process | Where-Object{$_.Id -gt 200} | Format-Table ProcessName, $CustomColumn

除了修改行标题名称以外,还可以对属性值做很多自定义计算操作等等,比如我把Id属性值以整数带后两位整零的格式(如:*.00)输出。

Get-Process | Format-Table Name, @{Expression={$_.Id}; Name="Custom_Id"; FormatString="N2"}

这里我增加了一个哈希键值FormatString="N2" 这个主要是告诉PowerShell这一列定义输出的内容都以整数格式输出并且保留后两位整零格式。你可以看到下面所有我们自定义的Custom_Id列都类似*.00格式输出了。
这里写图片描述
当然哈希表自定义格式化不仅仅只是在Format类型的命令格式化输出中使用哦,也可以用于Select-Object、Sort-Object等命令里,它可灵活了,你用多了就会慢慢喜欢上这个技巧了。

Windows桌面自动化实战:Python+PowerShell+开源AI三步落地 GUI自动化是解决Windows用户高频重复操作的核心技术路径,其本质是将鼠标键盘行为转化为可复用、可编辑的结构化指令流。原理上依赖UI Automation API实现控件语义识别,规避传统坐标定位在DPI缩放与多屏环境下的失效问题;技术价值在于降低使用门槛——无需编程基础即可通过YAML配置或自然语言触发流程;典型应用场景覆盖行政日报提交、IT批量部署、财务数据导出等办公刚需;本文聚焦Python作为跨平台调度引擎、PowerShell深度集成Windows系统API、开源轻量模型(如Phi-3-min 阅读详情

相关推荐

Windows开发者Vibe Coding入门:PowerShell+ripgrep+Python环境搭建指南

Vibe Coding是一种面向开发者心流体验的高效工作流范式,核心在于降低人机交互摩擦、保障思维连续性。其技术基础植根于现代Shell能力(如PowerShell的对象管道)、极速文本搜索(ripgrep的Rust原生性能与智能编码识别)和轻量可编程胶水语言(Python的纯净安装与PATH一致性)。这种组合显著提升本地开发响应速度与调试确定性,广泛应用于自动化脚本编写、VS Code扩展协同(如Todo Tree)、日志分析及办公数据处理等场景。本文聚焦Windows平台,系统解决PowerShell执

weixin_30487201的博客 366

PowerShell 格式化

因为PowerShell并不是完全成熟的用于生成管理报表的工具,但是它能够很好的收集计算机的信息,并以定制的格式输出,用于输出定制的方式称为格式化。 默认格式 现在我们运行一个熟悉的cmdlet: get-process, 然后注意结果的列头部分。可以看到他并不是非常符合常规的属性名。取而代之的是一个固定的宽度、别名等。 其实这些格式都是来自于配置文件,我们可以在安装PowerShell的路...

weixin_42545594的博客 1062

VSCode中C语言格式化配置指南:Clang-Format实战详解

代码格式化是软件开发中的基础实践,它通过统一代码风格来提升可读性和维护性。其核心原理是借助静态分析工具解析代码结构,再按预设规则重新排版。在C/C++生态中,Clang-Format凭借其与LLVM编译器的深度集成,成为格式化工具的权威选择。它通过.clang-format配置文件支持高度定制,能精准控制缩进、括号位置、指针对齐等细节。这一技术价值在于将开发者从繁琐的手动调整中解放,确保团队协作的代码一致性,尤其适用于大型项目维护和跨团队协作。本文聚焦于在VSCode编辑器中配置Clang-Format的完

weixin_30755393的博客 524

PowerShell常用命令及使用方法

PowerShell 依托.NET Framework平台可以实现非常强大的功能,而且普适性强,Win7及以上系统自带,隐蔽性好,可以直接在内存中运行,能够绕过部分杀软,现将平日操作及内网渗透过程中常用命令及使用方法总结如下。...

Captain_RB的博客 5万+

GoLand配置Protobuf自动格式化:clang-format与File Watcher实战指南

在微服务与gRPC开发中,Protocol Buffers作为接口契约与数据定义的核心,其代码格式的规范性直接影响团队协作效率与自动化工具链的稳定性。代码格式化工具通过预定义规则自动调整代码缩进、空格、换行等样式,确保代码风格统一。其技术价值在于将规范固化为开发环境的本能行为,减少无意义的代码差异,提升代码审查效率,并避免因格式问题引发的生成错误。在实际应用场景中,开发者常借助IDE的File Watcher功能,在文件保存时自动触发格式化工具,实现“保存即整理”的流畅体验。本文以GoLand为例,详细演示

weixin_30411819的博客 419

C++顺序结构编程实战:从计算圆面积到信息学奥赛基础

顺序结构是程序设计的基础,它规定了代码按照线性顺序依次执行的核心原理。在C++编程中,理解变量定义、数据类型选择、运算符使用以及输入输出控制,是构建健壮程序的关键技术价值。通过解决“计算圆的面积和周长”这类经典问题,可以深入掌握如何将零散语法知识组装成完整程序,并应用于信息学奥赛(CSP-J/S)等实际场景。本文以**格式化输出**和**程序健壮性**为例,详细拆解了从环境准备、代码实现到调试测试的全流程,帮助初学者夯实基础,培养工程化思维。

weixin_34232744的博客 642

Powershell格式化输出

使用Format命令格式化powershell输出,常用的命令如下: Format-Wide:每个对象仅有一个属性值被显示。默认情况下输出默认属性,也可以通过指定-Property参数来输出其他属性 例如: Get-Process -Name powershell|Format-Wide Get-Process -Name powershell| Format-wide...

a2218641的博客 1336

测试dali协议的软件,DALI2.0和DALI1.0完美兼容同一个模块,测试每项可过协议

DALI2.0和DALI1.0完美兼容同一个模块,测试每项可过协议深圳聚积智能 夏先生 13246760327 QQ 349098308■IEC62386-102(V2.0)通过测试内容IEC62386-102/2.1/Test preambleIEC62386-102/3.1/Polarity testIEC62386-102/3.2/Maximum and minimum system v...

weixin_35343788的博客 1349

PowerShell入门:掌握基本的输入输出命令

本文将深入探讨PowerShell中的基本输入输出命令,以及如何使用这些命令来简化日常任务。

常备不懈 2762

基于STM32的INA226电压电流检测仪

该功率检测装置以STM32F103C8T6微控制器为核心,集成功率检测、数据交互、状态显示和用户提示功能,通过模块化设计实现稳定运行。系统包括按键、LED指示灯、OLED屏幕、INA226电压电流检测、复位电路、晶振电路、蜂鸣器驱动、输入输出接口、调试接口和3.3V降压电路等模块。微控制器通过按键检测用户输入,启动功率检测,采集数据并通过OLED显示,异常情况触发蜂鸣器报警,LED状态指示同步反馈。3.3V降压电路为所有模块提供稳定电源,晶振电路确保时序精度。INA226芯片通过I2C接口与微控制器通信,实

a2784288164的博客 1909

制作你自己的yolov5数据集并进行训练

项目地址:make-your-yolov5_dataset 一、数据集标注软件 labelImg labelMe 精灵标注助手 更多的标注工具你可以去看:深度学习图像标注工具汇总 、 十个最常用深度学习图像/视频数据标注工具 、 百度一下 在这里我选择使用labelImg 二、数据集标注 下载labelImg 解压,直接打开labelimg.exe labelImg标注数据 标注完成后即可获得VOC格式(生成.xml文件)的数据 目录结构: dataset │ ├─Annotations .

年少的勇气已经用完,剩下的就是三思而后行 1万+

[原创][PowerShell教程][06]PowerShell中格式化命令和输出命令

好久不见, 我又食言了, 一直没有更新教程, 我也不想找借口, 因为我花了很多时间跑去玩大蛇无双和魔王再临. 今天, 我将为您介绍如何使用格式化和输出命令. 在PowerShell中,负责进行格式化和输出的是三类cmdlet。他们分别是:Format-*、Out-*和 Write-* 。顾名思义,Format-* 主要是用来对信息进行格式化操作,Out-*用于指定输出设备,而 Write-

Windows PowerShell 4889

Moviepy自动化剪辑视频中的广告

本教程展示了如何使用 Python 中的 MoviePy 库,通过检测和剪辑广告段落来实现视频内容的清洁播放。通过广告检测算法和 MoviePy 剪辑功能的结合,可以自动化处理视频,极大提升编辑效率。在学习和应用中,理解广告检测的原理及其实现方法尤为重要,以便针对不同类型的视频进行调整。此外,MoviePy 的灵活性使其适用于多种视频编辑场景,适合自动化内容制作与优化。

Mr数据杨 3409

从零开始学PowerShell(5)自定义格式化信息

我们已经基本了解了大部分在PowerShell中的格式化输出命令的使用,但是我们之前做的内容的格式化也仅仅是针对现有输出的内容做一些排版格式的输出,在某些场景需求下,这样的排版还是显得过于单调。所以今天要讲一下如何自定义格式化信息。这是个很有趣的话题,所以单独放在了一篇文章里讲。 PowerShell输出的信息内容其实默认是经过排版的,基本以表单的形式,像下面这样。 为了更好的说明自定义格式化信息的用意,我来假设一个场景需求。我需要罗列出Id值大于2000的进程信息,但一定要输出的信息给别人一看就明

墨痕诉清风的博客 797

Modbus通信从入门到精通_2_Modbus TCP通信详解及仿真(搭建ModbusTCP仿真环境:创建虚拟PLC并进行ModbusTCP通讯;寄存器与PLC中映射关系;适合理解如何编写上位机)

LocalPort”是PLC的端口,最终的设置如下图所示:(相关的设置都可以查看帮助文档)P#DB1.DBX0.0 BYTE28是以指针形式表示的DB1的DBX0.0开始(在使用的西门子Modbus tcp的程序块中设置的“MB_HOLD_REG”输出寄存器),其有28个字节(28个字节对应14个寄存器),4001是第一个寄存器,往后数14个即可。在上面的基础上,增加一个“DB1”的“组对象”,同时将“MW0”的组对象禁止(双击组对象,“Active”取消勾选),启动之后发现无法连接。

分享学习成长历程,Winter is coming! 1万+

JVM高频面试基本问题与知识点整理

JVM高频面试基本问题与知识点整理

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 87万+

PowerShell脚本:快速入门

batch脚本在面对xml读写、字符串处理等需求时常常捉襟见肘,无法满足我们的需求,因此掌握powershell显得非常必要。 0. 基本指令 0.1 获取帮助 这里有三个命令可以帮助你了解命令作用及其用法。 get-command:列出所有可用命令 get-help command [-full]:获取指定命令帮助信息,加full获取详细帮助 command -?:获取指定命令的简要介绍,相当于get-help command 注意: powershell与batch一样不区分大小写 变量采用小驼

csfchh的博客 1万+

SAP_MM模块非限制库存转冻结库存

项目非限制 → 冻结事务码移动类型343影响库存不可用,不参与MRP常见用途质量问题封存、盘点冻结、待退货品通过本文,我们了解了 SAP 的[SAP_MM模块非限制库存转冻结库存]的基本概念和应用方法。希望这些信息能帮助您在实际工作中更好地使用 SAP 系统,提高工作效率和管理水平。更多SAP文章请点击更多SAP文章更新,大家一起学习进步!!!文章中如有错误。敬请指正!搜索公众号:SAP资料文库微信号:SPRO_PP时间:2025-10-14。

我小时候很黑的博客 584

powershell文章汇总

3分钟带你了解PowerShell发展历程 从零开始——PowerShell应用入门(全例子入门讲解) Powershell变量的类型和强类型 – PowerShell 中文博客 Powershell变量的作用域 – PowerShell 中文博客 PowerShell单行注释、多行注释、块注释的方法_PowerShell_脚本之家 Powershell访问数组 – PowerShell...

冰封的落叶的博客 311

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【零基础逆袭】:从不会写命令到精通PowerShell脚本的6个进阶阶段

掌握MCP认证必备技能,从零开始系统学习PowerShell脚本编写。涵盖自动化运维、批量管理、系统监控等实际应用场景,通过6个进阶阶段逐步精通核心语法、函数设计与错误处理。方法清晰,实战性强,助你快速提升效率,值得收藏。

InstrGap的博客 1002

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

PowerShell JSON操作指南:从基础读写到批量配置实战

JSON作为一种轻量级的数据交换格式,在配置管理、API通信和数据持久化等场景中广泛应用。其核心原理是基于文本的键值对和嵌套结构表示,易于人类阅读和机器解析。在Windows生态中,PowerShell通过内置的ConvertFrom-Json和ConvertTo-Json Cmdlet,提供了零依赖的原生JSON处理能力,极大简化了系统管理和自动化任务中的数据操作。这些Cmdlet将JSON无缝映射为PowerShell自定义对象,支持通过点语法和管道进行直观的查询与修改,特别适合处理服务器配置、应用设置

383

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

第26章学习笔记|如何“吃透”别人写的 PowerShell 脚本(以 IIS 与登录日志为例)

PowerShell 脚本解析与优化指南 本文介绍了快速理解、安全执行和改进 PowerShell 脚本的方法,重点关注 IIS 管理和事件日志查询场景。 核心方法: 参数检查:先查看脚本参数入口 调用图分析:理清函数调用关系 变量溯源:明确关键变量来源 沙箱测试:在隔离环境中验证 IIS 站点管理脚本优化: 添加参数验证和幂等性处理 统一变量命名并加强错误处理 增加管理员权限检查 实现 WhatIf 保护机制 事件日志查询改进: 使用 Get-WinEvent 替代老旧命令 采用 XML 解析提升可靠性

分享 Windows 系统部署、镜像封装、终端管理、故障排查与运维自动化实践,涵盖 Sysinternals、PowerShell 和 AI 工具应用。以真实案例梳理排查思路与解决步骤,让运维经验清晰、可复用。 2万+

【Win】活用 PowerShell 与 Get-CimInstance:一键生成系统硬件健康报告

本文详细介绍了如何利用PowerShell的Get-CimInstance命令一键生成系统硬件健康报告,涵盖BIOS、CPU、内存、磁盘等关键硬件信息的获取与分析。通过模块化脚本设计和HTML报告生成,帮助IT运维人员快速定位硬件问题,提升工作效率。特别适合Windows系统管理员和硬件维护人员使用。

weixin_30650039的博客 227

Python变量与格式化字符串:从命名到f-string一次讲透

编程语言的入门往往从数据存储与输出开始,而变量和格式化字符串正是这两个环节的基础。变量本质上是对象的引用标签,而非简单的内存盒子,理解这一点有助于避免后续操作可变对象时误改数据。格式化字符串则承担着把变量组织成可读文本的任务,从传统的%占位符到str.format(),再到更简洁的f-string,演化历程体现了对可读性和效率的追求。f-string允许在花括号内直接嵌入表达式,支持运算、精度控制与对齐,特别适合日志输出、数据表格展示等工程场景。无论后续学习爬虫、数据分析还是Web开发,都离不开对变量命名规

weixin_34212762的博客 295

Windows上部署GitLab Runner:PowerShell与config.toml生产级实践

GitLab Runner 是 GitLab CI/CD 的核心执行器,其在 Windows 平台的运行机制与 Linux 截然不同——它依赖原生 PowerShell 执行环境、严格遵循 TOML 配置规范,并深度耦合 Windows 安全模型(如 UAC、ExecutionPolicy、NTFS 权限)。理解 shell executor 的工作原理、config.toml 的 UTF-8 无 BOM 编码要求及 PowerShell 执行策略的精准配置,是实现稳定构建的关键。该方案广泛应用于 .NET

weixin_33841722的博客 222
上一篇: 从零开始学PowerShell(4) 数据的选择、排序与格式化
下一篇: 从零开始学PowerShell(6) 获取对象信息
itanders
博客等级 码龄19年 178粉丝 177原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值