powershell - 微软在 PowerShell CmdLet 参数命名方面的一致性

标签 powershell parameters naming convention consistency

假设我编写了一个包含此命令的 PowerShell 脚本:

Get-ChildItem -Recurse

但是我写了:

Get-ChildItem -Re

为了节省时间。过了一段时间后,我升级了我的 PowerShell 版本,Microsoft 决定向 Get-ChildItem 添加一个名为“-Return”的参数,例如根据是否找到任何项目返回 True 或 False。

在那个虚拟场景中,我是否必须编辑所有以前的脚本以确保脚本按预期运行?我了解 Microsoft 试图节省我的打字时间,但这是我的顾虑,因此我可能会始终尝试写下完整的参数名称。

当然,除非你知道一些我不知道的事情。感谢您的见解!

最佳答案

这听起来更像是咆哮而不是问题,但要回答:

In that virtual scenario, do I have I to edit all my former scripts to ensure that the script will function as expected?

是的!

您应该始终在脚本(或任何其他可重用代码片段)中使用完整的参数名称。

自动解析部分参数名称、别名和其他快捷方式非常方便以交互方式使用 PowerShell。它让我们启动 powershell.exe 并执行:

ls -re *.ps1|% FullName

当我们想要找到配置文件中所有脚本的路径时。非常适合探索!

但如果我要将该功能合并到脚本中,我会这样做:

Get-ChildItem -Path $Home -Filter *.ps1 -Recurse |Select-Object -ExpandProperty FullName

不仅是因为您提到的原因,还因为一致性和可读性 - 如果我的一位同事出现并且可能不熟悉我正在使用的快捷方式,他仍然能够辨别含义和管道的预期输出。


注:目前有three open issues在 GitHub 上为此添加警告规则 PSScriptAnalyzer - 我相信项目维护者会喜欢这个:-)

关于powershell - 微软在 PowerShell CmdLet 参数命名方面的一致性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41407717/

相关文章:

java - 处理命令行参数

c# - 关于java实用类命名的思考

ruby-on-rails - 是否可以使用单词 'type' 命名数据库表列而不会出现问题?

powershell - Powershell Windows 10更改/错误文档

powershell - 如何重置 powershell 颜色

java - 将参数从方法传递到 main

java - 在 Java REST 中为路径参数添加值?

.net - "ApplicationServices"是横切关注点 "stuff"的正确名称吗?

xml - 删除 XML 文件中的子节点

powershell - 从没有作业信息的 Powershell 作业返回数据