【192】PowerShell 相关知识

默写说明:

  1. 查询别名所指的真实cmdlet命令。
    Get-Alias -name ls
    
  2. 查看可用的别名,可以通过 “ls alias:” 或者 “Get-Alias”。
  3. 查看所有以Remove打头的cmdlet的命令的别名。
    dir alias: | where {$_.Definition.Startswith("Remove")}
    
    说明:dir alias:获取的是别名的数组,通过where对数组元素进行遍历,$_代表当前元素,alias的Definition为String类型,因为 powershell支持.net,.net中的string类有一个方法Startswith。通过where过滤集合在powershell中使用非 常广泛。
  4. 下面示例演示了如何将脚本块用作 Property 参数的值。此命令显示从 1 到 35 的整数,并按除以 2 或 3 后的余数分组。
    PS > 1..35 | group-object -property {$_ % 2},{$_ % 3}
    
    Count Name                      Group                                                                       
    ----- ----                      -----                                                                       
        6 1, 1                      {1, 7, 13, 19...}                                                           
        6 0, 2                      {2, 8, 14, 20...}                                                           
        6 1, 0                      {3, 9, 15, 21...}                                                           
        6 0, 1                      {4, 10, 16, 22...}                                                          
        6 1, 2                      {5, 11, 17, 23...}                                                          
        5 0, 0                      {6, 12, 18, 24...}  
    
  5. 数组的最后一项可以通过 $a[-1] 来获取,以此类推。
  6. $ 是 Get-Variable 的某种说法,也就不难理解为啥变量的前面都有个 $ 的原因了。
  7. @()为一个空数组。
  8. PowerShell 可以调用的 .NET 类库
    DateTime
    String
    ArrayList
    Math
  9. .NET 类库 static 的用法:[.NET 类库名称]::静态方法
    PS E:PowerShell> [math]::PI
    3.14159265358979
    
    PS E:PowerShell> [math]::E
    2.71828182845905
    
    PS E:PowerShell> [math]::Sqrt(10)
    3.16227766016838
    
  10. 两个命令以分号 (;) 来分隔。
  11. 获取当前日期是一年中的第几天
    PS C:UsersMcDelfino> get-date -uformat %j
    107
    

about_Comparison_Operators


详细说明 使用比较运算符,可以指定用于比较值和查找与指定模式匹配的值的条件。 若要使用比较运算符,请同时指定要进行比较的值以及分隔这些值的运算符。 默认情况下,所有比较运算符都不区分大小写。若要使一个比较运算符区 分大小写,请在运算符名称前加字母"c"。例如,"-eq"区分大小写的形式 为"-ceq"。若要明确表示不区分大小写,则在运算符前加字母"i"。 例如,"-eq"的明确不区分大小写的形式为"-ieq"。 除包含运算符(-contains、-notcontains)和类型运算符(-is、-isnot)外的 所有比较运算符在运算符的输入(运算符左侧的值)是单个值(标量)时,都将 返回一个布尔值。当输入是值的集合时,包含运算符和类型运算符将返回任何 匹配值。如果集合中没有匹配项,则这些运算符不返回任何值。包含运算符和类型 运算符始终返回布尔值。

Windows PowerShell 支持以下比较运算符。
-eq:等于。包含一个相同的值。
-ne:不等于。包含一个不同的值。
-gt:大于。
-ge:大于或等于。
-lt:小于。
-le:小于或等于。
-like:使用通配符 (*) 匹配。
-notlike:使用通配符 (*) 不匹配。
-match:使用正则表达式与字符串匹配。当输入为标量时,它将填充 $Matches 自动变量。
-notmatch:与字符串不匹配。使用正则表达式。当输入为标量时,它将填充 $Matches 自动变量。
-contains:包含运算符。包含一个相同的完整值(而不是值的一部分)。始终返回布尔值。
-notcontains:包含运算符。不包含一个相同值。始终返回布尔值。
-replace:替换运算符。更改值的指定元素。

相等运算符
相等运算符(-eq、-ne)在一个或多个输入值与指定模式相同时,返回一个 TRUE 值或返回匹配项。 整个模式必须与整个值匹配。

包含运算符
包含运算符(-contains 和 -notcontains)与相等运算符相似。不过,包含运算符始终返回布尔值,即使在输入为集合时也如此。另外,与相等运算符不同的是,包含运算符在检测到第一个匹配项时立即返回一个值。相等运算符对所有输入进行评估,然后返回集合中的所有匹配项。

匹配运算符
匹配运算符(-match 和 -notmatch)使用正则表达式来查找与指定模式匹配或不匹配的元素。

替换运算符
-replace 运算符可通过正则表达式用指定值替换某个值的全部或部分。可使用 -replace 运算符完 成很多管理任务,如重命名文件。

位运算符
Windows PowerShell 支持标准位运算符,包括位与运算符 (-band) 以及位或和位异或运算符(- bor 和 -bxor)。

about_Regular_Expressions

原文地址:https://www.cnblogs.com/alex-bn-lee/p/5062217.html