把握行业变革关键节点,12 月 19 日 - 20 日,AICon北京站即将重磅启幕! 了解详情
写点什么

为什么是 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:331377

评论

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

软件测试学习笔记丨服务端问题定位常用linux指令集合

测试人

Linux 软件测试

即时通讯技术文集(第35期):IM群聊技术合集(Part2) [共12篇]

JackJiang

即时通讯;IM;网络编程

2024-03-13:用go语言,给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q =

福大大架构师每日一题

福大大架构师每日一题

网络安全等级测评师考试培训可以参考哪些资料?

行云管家

等保 等级保护 等保测评师

【一文读懂】基于Havenask向量检索+大模型,构建可靠的智能问答服务

阿里技术

向量检索 LLM 智能问答 Havenask 召回搜索引擎

ppt美化ai软件有哪些?这5款AI工具一键生成PPT!

彭宏豪95

人工智能 PPT AIGC 效率软件 AI生成PPT

软件测试岗位我是如何拿到5个offer的一些经验分享(附面试题)

测试人

软件测试 面试题

十分钟掌握分布式数据库开发:OpenMLDB 开发者镜像详解

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

得物布局构建耗时优化方案实践

得物技术

xml 前端

开放原子开源大赛—基于OpenHarmony的团结引擎应用开发赛正式启动!

OpenHarmony开发者

提升地理空间分析效率,火山引擎ByteHouse上线GIS能力

字节跳动数据平台

数据库 大数据

代码精简执行过程

京东科技开发者

带你走进 HarmonyOS:前端如何迎接新技术的到来

京东科技开发者

「飞桨星河社区创作者激励计划」全新上线!丰富权益,等你领取~

飞桨PaddlePaddle

百度 开发者社区 百度飞桨 星河社区 飞桨星河社区

面试八股文,自有其道理

老张

面试 专业能力

一个数据库死锁竟然被测试发现了,这你敢信

京东科技开发者

【体验有奖】用 AI 画春天,函数计算搭建 Stable Diffusion WebUI

阿里巴巴云原生

阿里云 云原生 AIGC

[自研开源] MyData v0.7.2 更新日志

LIEN

开源 数据集成 业务融合 API对接 mydata

代币开发:2024年代币开发主要因素

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

为了跳槽或提升自己,你会先学习哪一门编程语言?

小魏写代码

超越基础设施:深度探讨平台工程的关键支柱

SEAL安全

架构 基础设施 平台工程

以守为攻,零信任安全防护能力的新范式

权说安全

零信任

万字带你了解ChatGLM

华为云开发者联盟

人工智能 华为云 大模型 华为云开发者联盟

一键开启 GPU 闲置模式,基于函数计算低成本部署 Google Gemma 模型服务

阿里巴巴云原生

阿里云 云原生 函数计算

如何定期清理数据库中的无效数据?

NineData

数据清理 数据归档 NineData 无效数据 优化数据库

Tapjoy from Unity 推出“每日奖励”积分墙广告,以增强用户粘性并提升投放 ROAS

极客天地

npm是如何处理多版本依赖的?

伤感汤姆布利柏

ByteSRC奖励再升级,单个重大漏洞提升至10万元

极客天地

等保测评与信息安全管理体系认证的区别

行云管家

等保 等级保护 等保测评

数据“隐领”未来!【隐私计算实训营】限时免费招募!

隐语SecretFlow

数据分析 数据安全 隐私计算

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