在Powershell中%,$ _和@是什么意思?

时间:2019-07-03 17:19:33

标签: powershell

这是什么意思:Powershell中的$_%

1..10 | Foreach {if($_%2){"$_ is odd number"}}

1 个答案:

答案 0 :(得分:8)

  • %
    • 在您的情况下,它是模运算符。它将返回将左侧值除以右侧值的余数。
    • 它默认为Foreach-Object的PowerShell别名。您可以执行Get-Alias命令来查看其他可能包含特殊字符的别名,例如Where-Object的别名?

  • $_
    • $PSItem的同义词
    • 在管道对象中包含当前对象
    • 在您的情况下,它表示传递到Foreach-Object脚本块({})中的当前对象。
    • 它通常会显示在Where-Object {}脚本块和Select-Object哈希表中。

  • @

    • 文字@字符
    • 表示飞溅
      • 语法为@VariableName。该变量可以是数组或哈希表。它通常与哈希表或字典一起使用,其中Name属性表示参数名称,而value属性是该参数的值。然后将该变量放入另一个命令中。一个示例是Get-Process @Params
    • 用于通过数组子表达式运算符@()声明和初始化数组。

      • 示例为$myArray = @()$myArray = @("value1","value2")
    • 用于创建和/或初始化哈希表
      • 语法为$variable = @{}$variable = @{Property=Value}
    • 用于此处字符串
      • 这里的字符串是特殊情况的字符串,可以扩展多行并包含特殊字符
      • 通过以@'@"开头的字符串值并以相应的'@"@结束字符串值来表示。
        • 此处字符串的打开和关闭字符应在其右侧(RHS)的相应行上隔离。
    • 公共符号
      • 用于构建电子邮件地址,即user@domain.com。
      • 用于外部程序远程登录语法,即user @ hostname。

额外阅读和重要链接:

  1. 有关其他算术运算符的模数信息,请参见About Arithmetic Operators

  2. 有关Foreach-Object以及对象处理方式的更多信息,请参见Foreach-Object

  3. 有关飞溅的更多信息和用法,请参见About Splatting

  4. 另一个不错的资源是About Automatic Variables,它将列出PowerShell的保留/自动变量。它们由PowerShell创建和维护。您会注意到有些变量具有非字母和非数字字符。创建自己的自定义变量时,应仅将这些变量用于其预期用途,而不使用其名称。

  5. 有关数组子表达式运算符的详细信息,请参见About Arrays

  6. 有关创建和操作哈希表对象的详细信息,请参见About Hash Tables

  7. 请参见About Quoting Rules,以了解更多信息和使用此处字符串的示例。