写点什么

为什么是 Cmdlets?

  • 2007-07-13
  • 本文字数:749 字

    阅读完需:约 2 分钟

Jeffrey Snover 描述了使用Cmdlets 和APIs 之间的区别。他总结说,“Cmdlets 是特别为系统管理人员(Admins)用键盘操作而设计的,而APIs 不是。Cmdlets 是PowerShell 的核心和精神。”

Cmdlets 是从 Cmdlet 或者 PSCmdlet 基类继承创建的。而这两个类都是通过重写 BeginProcessing、ProcessRecord 和 EndProcessing 等虚函数实现的。

这些类因它们暴露的 PowerShell 底层多少而有所区别。但是 Cmdlet 是轻量级的,能被其他的 Cmdlets 所调用, PSCmdlet 为 PowerShell 运行时,包括环境变量和 Session 状态,提供访问接口。

Jeffrey Snover 通过阐述在 PowerShell 环境下 Cmdlet 所获得的更好支持,来支持他的观点。下面是他的一些主要论点:

  • 命名。Cmdlet 的命名是明确的,能让系统管理员轻松地知道应该使用哪些命令。Cmdlets 的命名模式是动名词性质的,而且对动词的使用有很好的使用指南。参数的使用指南也很丰富。相对而言,APIs 就不是那么智能。
  • Tab 键完成(Tab-Completion)。PowerShell 为 Cmdlets 和参数提供了 Tab 键完成,而没有为 APIs 提供。
  • 帮助。Cmdlets 提供了面向系统管理员的智能的帮助。APIs 提供的是面向开发人员的帮助。
  • 发现能力。PowerShell 提供了大量对系统管理人员友好的方式,以找到像 Get-Command、Get-Help(这两个都支持 wildcards)以及 See-Also 等这样的 Cmdlets 帮助。
  • APIs 只能抛出错误,而 Cmdlets 能区分中断和非中断错误。非中断错误能更好地支持大量操作,并允许操作在收集所有的要素并组合成集合之后继续进行。
  • 通道。通过使用 Cmdlets 可以支持 PIPELINE 输入。APIs 却需要用户做一些编程工作以获得类似的结果。

Jeffery 还提到说,“在 2.0 版本里,Cmdlets 和 APIs 之间的差距会越来越大。那时,会有一些重要的函数只在 Cmdlets 里才存在。”

查看英文原文: Why Cmdlets?

2007-07-13 00:331367

评论

发布
暂无评论
发现更多内容

架构实战营模块 2 作业

陈斌

架构实战营

CnosDB 科技春晚暨CnosDB 2.4.0 Milky Way发布会

CnosDB

开源 时序数据库 CnosDB CnosDB2.4.0发布会

大模型技术的发展与实践 主赛道:技术人的 2023 总结

芯动大师

大模型 ChatGPT LLM

06 | 链表(上):如何实现LRU缓存淘汰算法

鲁米

三层开发

Geek_8da502

APP开发

用友与厦国会联合培训,探索智能会计时代业财融合成功模式

用友BIP

智能会计

高防服务器租用注意事项

Geek_f19a80

服务器

走进厦航,体验智能会计时代的业财融合

用友BIP

智能会计 业财融合

揭秘大脑中的贪婪因子:全面解析多巴胺

少油少糖八分饱

情绪 理性 大脑 快乐 多巴胺

一款充电桩解决方案设计

芯动大师

What's new in Pika v3.5.2

apache/dubbo-go

redis 底层原理 Redis 7 Pika

Go 程序编译过程(基于Go1.21)

-Hedon🍭

Go 编译原理 Go 面试题 面经 后端 大厂 Go编译过程

时间序列数据压缩算法简述

CnosDB

开源 时序数据库 CnosDB

糟了,数据库崩了,又好像没崩

越长大越悲伤

MySQL MySQL 8.0

如何从 Jira 成功迁移到极狐GitLab,看这个就够了!

极狐GitLab

项目管理 DevOps gitlab 敏捷开发

DevOps|研发提效-敏捷开发之每日站立会

laofo

DevOps Scrum 敏捷开发 研发效能 每日站会

拼版不合理案例详解

华秋电子

mybatis-plus代码生成器

智慧源点

Mybatis Plus 代码生成器

纯CSS实现炫酷背景霓虹灯文字效果

南城FE

CSS 前端 动画 交互设计

Tomcat 配合虚拟线程,一种新的编程体验

越长大越悲伤

Java springboot 虚拟线程

细说GaussDB(DWS)的2种查询优化技术

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 华为云GaussDB(DWS)

喜讯!华秋荣获2023中国产业数字化百强榜企业

华秋电子

GPU深度学习性能的三驾马车:Tensor Core、内存带宽与内存层次结构

Baihai IDP

人工智能 程序员 AI gpu LLM

07 | 链表(下):如何轻松写出正确的链表代码?

鲁米

CnosDB FDW:打通一扇通往PostgreSQL世界的大门

CnosDB

开源 时序数据库 CnosDB

文心一言 VS 讯飞星火 VS chatgpt (148)-- 算法导论12.2 3题

福大大架构师每日一题

福大大架构师每日一题

SQL 日期处理和视图创建:常见数据类型、示例查询和防范 SQL 注入方法

小万哥

MySQL 数据库 程序员 sql 后端开发

05 | 数组:为什么很多编程语言中数组都从0开始编号

鲁米

JVM C1、C2编译器

FunTester

[大厂实践] Netflix容器平台内核panic可观察性实践

俞凡

Kubernetes netflix 大厂实践

为什么是Cmdlets?_.NET_Jonathan Allen_InfoQ精选文章