【问题标题】:What is the technical term for "<somevalue>" this are used in helps of commands在命令帮助中使用的“<somevalue>”的技术术语是什么
【发布时间】:2022-01-15 21:31:46
【问题描述】:

我在学习 power shell 并找到了一个视频,它解释了如何阅读帮助,然后我遇到了一个技术术语,但我无法拼写或无法在互联网上找到它。我已附上视频以供参考 https://youtu.be/UVUd9_k9C6A?t=4255

示例 语法

New-Item [-Path] <string[]> [-ItemType <string>] [-Value <Object>] [-Force]

// 在参数名称之后,我们有一些信息,例如&lt;string&gt; 这个东西的技术术语是什么

【问题讨论】:

  • 请允许我给你一个标准的建议给新手:如果你accept 一个答案,你会帮助未来的读者,告诉他们什么解决了你的问题。要接受答案,请单击答案左侧大数字下方的大 ✓ 符号(您将获得 2 点声望)。如果您至少有 15 个声望点,您还可以投票给其他有用的答案(也可以选择接受的答案)。如果您的问题尚未解决,请提供反馈,或者,如果您自己找到了解决方案,请self-answer

标签: powershell console


【解决方案1】:

&lt;typename&gt; / &lt;typename[]&gt; 表示法仅在 PowerShell 的 syntax diagrams 中使用,表示给定参数的数据类型 (.NET type)

  • typename 是否代表 .NET 类型的简单名称,但不包括其命名空间组件(例如&lt;string&gt;)或完整 em> 类型名称(例如 &lt;System.String&gt;)因情况而异

    • 完整(命名空间限定)类型名称仅在您使用 -?Get-Help 时显示,并且目标命令的帮助信息恰好通过 基于 MAML 的单独提供帮助文件

      • 此外,System.Enum 派生的参数由它们的而不是它们的类型名称来显示。
    • 否则 - 特别包括使用 基于注释的帮助 编写的 PowerShell 函数和脚本 - 您只能获得 简单 名称。

    • 同样,如果您使用 Get-Command -Syntax,您只会获得 simple 类型名称 - 无论目标命令的帮助如何实现。

  • typename 后跟[] 表示给定参数接受给定类型实例的数组 - 例如&lt;string[]&gt;.

注意:

  • 从技术上讲,如果只显示一个 simple 类型名称,则显示是 ambiguous,因为给定名称的类型可能存在于 multiple命名空间。也就是说,在典型情况下,会很清楚所引用的类型,尤其是 .NET 原始类型,例如 stringint、...

    • 如有疑问,请使用反射来确定完整的类型名称;例如,要确定 New-Object cmdlet 的 -Property 参数的完整 .NET 类型名称:

      (Get-Command New-Object).Parameters['Property'].ParameterType.FullName
      
  • 鉴于 PowerShell 灵活的自动类型转换,给定的参数不必是目标参数声明的 exact 类型;它可以是 PowerShell 可以转换为目标类型的任何类型。这通常很有帮助,但有时会导致令人惊讶的行为。值得注意的是,&lt;string&gt; 参数接受(几乎)any 类型的参数,因为任何对象都可以转换为字符串,但并不总是有意义 - 请参阅 this answer 了解更多信息。

  • 有关如何阅读语法图的更多信息,即关于哪些参数是位置以及哪些参数是可选,请参阅this answer


值得注意的是,&lt;typename&gt; 语法图表示法不同于在实际 PowerShell 代码中类型的表示方式,其中类型名称必须包含在 @ 987654350@ 形成所谓的类型文字(例如[string]

此外,typename 的命名空间限定必需的,除了如果给定类型直接位于System.命名空间(例如[datetime] 代表System.DateTime)或者如果使用type accelerator(例如[regex]);如果必须指定命名空间组件,则可以省略 System. 组件。

有关类型文字的更多信息,请参阅this answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-20
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-27
    • 2016-12-05
    相关资源
    最近更新 更多