zoukankan      html  css  js  c++  java
  • PowerShell笔记

    本系列是一个重新学习PowerShell的笔记,内容引用自PowerShell中文博客

    数组

    命令返回的数组

    PS C:> $arr = ls                                                                                                       PS C:> $arr.GetType()                                                                                                  
    IsPublic IsSerial Name                                     BaseType
    -------- -------- ----                                     --------
    True     True     Object[]                                 System.Array
    
    PS C:> $arr[0].GetType()                                                                                               
    IsPublic IsSerial Name                                     BaseType
    -------- -------- ----                                     --------
    True     True     DirectoryInfo                            System.IO.FileSystemInfo
    
    PS C:> $arr.Length                                                                                                     29
    PS C:> $arr | Select-String "pdf"   
    PS C:Code> $arr -is [array]                                                                                            True
    PS C:Code> $arr | Select-Object -First 1 | Format-List *                                                               
    
    PSPath            : Microsoft.PowerShell.CoreFileSystem::C:605
    PSParentPath      : Microsoft.PowerShell.CoreFileSystem::C:
    PSChildName       : 0605
    PSDrive           : C
    PSProvider        : Microsoft.PowerShell.CoreFileSystem
    PSIsContainer     : True
    Mode              : d-----
    BaseName          : 0605
    Target            : {}
    LinkType          :
    Name              : 0605
    FullName          : C:605
    Parent            : Code
    Exists            : True
    Root              : C:
    Extension         :
    CreationTime      : 2020/6/5 11:03:21
    CreationTimeUtc   : 2020/6/5 3:03:21
    LastAccessTime    : 2020/6/5 11:03:24
    LastAccessTimeUtc : 2020/6/5 3:03:24
    LastWriteTime     : 2020/6/5 11:03:24
    LastWriteTimeUtc  : 2020/6/5 3:03:24
    Attributes        : Directory
    
    PS C:Code> $arr | Where-Object {$_.Name -eq "0605"}                                                                    
    
        Directory: C:Code
    
    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    d-----         2020/6/5     11:03                0605
    

    创建数组

    #基础数组
    PS C:Code> $arr = 1..3
    PS C:Code> $arr.GetType()                                                                                              
    IsPublic IsSerial Name                                     BaseType
    -------- -------- ----                                     --------
    True     True     Object[]                                 System.Array
    
    PS C:Code> $arr                                                                                                        1
    2
    3
    PS C:Code> $arr = 1,"花",(Get-Date)                                                                                    PS C:Code> $arr                                                                                                        1
    花
    
    2021年9月10日 14:22:47
    
    PS C:Code> $arr.GetType()                                                                                              
    IsPublic IsSerial Name                                     BaseType
    -------- -------- ----                                     --------
    True     True     Object[]                                 System.Array
    
    PS C:Code> $arr.Count                                                                                                  3
    
    #空数组
    PS C:Code> $arr = @()                                                                                                  PS C:Code> $arr.GetType()                                                                                              
    IsPublic IsSerial Name                                     BaseType
    -------- -------- ----                                     --------
    True     True     Object[]                                 System.Array
    
    #一个元素的数组
    PS C:Code> $arr = ,"花"                                                                                                PS C:Code> $arr.GetType()                                                                                              
    IsPublic IsSerial Name                                     BaseType
    -------- -------- ----                                     --------
    True     True     Object[]                                 System.Array
    
    PS C:Code> $arr.Count                                                                                                  1
    
    #查看其基类属性及方法
    PS C:Code> $arr.GetType().BaseType | Format-List *
    
    

    操作数组

    PS C:Code> $arr = 1..5                                                                                                 PS C:Code> $arr[($arr.Length -1)]                                                                                      5
    
    #倒序
    PS C:Code> $arr[($arr.Length -1)..0]                                                                                   5
    4
    3
    2
    1
    
    ##顺序
    PS C:Code> $arr[0..($arr.Length -1)]                                                                                   1
    2
    3
    4
    5
    
    #指定索引
    PS C:Code> $arr[0,2,4]                                                                                                 1
    3
    5
    
    #添加
    PS C:Code> $arr+=6                                                                                                     PS C:Code> $arr[5]                                                                                                     6
    
    #删除
    PS C:Code> $arr = $arr[0..2] + $arr[5]                                                                                 PS C:Code> $arr                                                                                                        1
    2
    3
    6
    
    #数组在创建后已指定数组的大小,只可重新写入新的数组,而不可对数组通过索引删除
    PS C:Code> $arr.Remove(1)                                                                                              Exception calling "Remove" with "1" argument(s): "Collection was of a fixed size."
    At line:1 char:1
    + $arr.Remove(1)
    + ~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : NotSupportedException
    
    #因为数组是引用类型,在复制数组时应该使用Clone方法
    PS C:Code> $arr_copy = $arr.Clone()                                                                                    PS C:Code> $arr_copy += 7                                                                                              PS C:Code> $arr_copy.Count                                                                                             5
    PS C:Code> $arr.Count                                                                                                  4
    
    #设置强类型数组
    PS C:Code> [int[]] $arr = @()                                                                                          PS C:Code> $arr +=1                                                                                                    PS C:Code> $arr += "2"                                                                                                 PS C:Code> $arr += "a"                                                                                                 Cannot convert value "a" to type "System.Int32". Error: "Input string was not in a correct format."
    At line:1 char:1
    + $arr += "a"
    + ~~~~~~~~~~~
        + CategoryInfo          : MetadataError: (:) [], ArgumentTransformationMetadataException
        + FullyQualifiedErrorId : RuntimeException
    

    HashMap

    哈希表操作

    #创建
    PS C:Code> $hash = @{ Name = "花"; Age = 3}                                                                            PS C:Code> $hash                                                                                                       
    Name                           Value
    ----                           -----
    Age                            3
    Name                           花
    
    #查看所有Key及Value
    PS C:Code> $hash.Keys                                                                                                  Age
    Name
    PS C:Code> $hash.Values                                                                                                3
    花
    
    #添加或删除Key
    PS C:Code> $hash.Class = "干饭"                                                                                        PS C:Code> $hash.Age = 4                                                                                               PS C:Code> $hash                                                                                                       
    Name                           Value
    ----                           -----
    Name                           花
    Age                            4
    Class                          干饭                                                                                     
    
    PS C:Code> $hash.Remove("Class")                                                                                       PS C:Code> $hash                                                                                                       
    Name                           Value
    ----                           -----
    Name                           花
    Age                            4
    
    #格式化输出
    PS C:Code> $hash | Format-Table                                                                                        
    Name                           Value
    ----                           -----
    Name                           花
    Age
    
  • 相关阅读:
    vue keep-alive 缓存组件
    媒体查询手机屏幕横屏竖屏
    手机端rem
    vue技术栈导出pdf
    判断是否为微信浏览器还是支付宝浏览器
    当前时间和倒计时效果
    npm install 报错node-sass模块找不到
    Lenovo System x3650 设置管理接口地址
    Python之excel文件追加内容
    python3 文件操作
  • 原文地址:https://www.cnblogs.com/MerLin-LiuNian/p/15251367.html
Copyright © 2011-2022 走看看