• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Windows Powershell 命令返回数组

    当我们把一个命令的执行结果保存到一个变量中,可能会认为变量存放的是纯文本。
    但是,事实上Powershell会把文本按每一行作为元素存为数组。如果一个命令的返回值不止一个结果时,Powershell也会自动把结果存储为数组。

    PS C:Powershell> $IPcfg=ipconfig
    PS C:Powershell> $IPcfg
    
    Windows IP Configuration
    Ethernet adapter Local Area Connection:
    
      Connection-specific DNS Suffix . : ***
      Link-local IPv6 Address . . . . . : ***
      IPv4 Address. . . . . . . . . . . : 192.168.140.128
      Subnet Mask . . . . . . . . . . . : 255.255.252.0
      Default Gateway . . . . . . . . . : 192.168.140.1
    
    Tunnel adapter isatap.mossfly.com:
    
      Connection-specific DNS Suffix . : ***
      Link-local IPv6 Address . . . . . : ***
      Default Gateway . . . . . . . . . :***
    
    Tunnel adapter Teredo Tunneling Pseudo-Interface:
    
      Media State . . . . . . . . . . . : Media disconnected
      Connection-specific DNS Suffix . :
    PS C:Powershell> $IPcfg.Count
    22
    
    

    使用数组存储结果
    判断一个变量是否为数组

    PS C:Powershell> $ip=ipconfig
    PS C:Powershell> $ip -is [array]
    True
    PS C:Powershell> "abac" -is [array]
    False
    PS C:Powershell> $str="字符串"
    PS C:Powershell> $str.ToCharArray() -is [array]
    True
    

    查看数组的元素个数用$array.Count属性。访问第x个元素,使用$array[x-1],因为数组是以0开始索引的。

    使用管道对数组进一步处理

    PS C:Powershell> ipconfig | Select-String "IP"
    
    Windows IP Configuration
      Link-local IPv6 Address . . . . . : ***
      IPv4 Address. . . . . . . . . . . : ***
      Link-local IPv6 Address . . . . . : ***
    

    使用真实的对象操作

    为什么不愿把IPconfig返回的结果称为对象,因为它不是真正Cmdlet命令,真正的Powershell命令返回的数组元素可不止一个字符串,它是一个内容丰富的对象。

    PS C:Powershell> ls
    
      Directory: C:Powershell
    
    Mode        LastWriteTime   Length Name
    ----        -------------   ------ ----
    d----    2011/11/23   17:25      ABC
    d----    2011/11/29   18:21      myscript
    -a---    2011/11/24   18:30   67580 a.html
    -a---    2011/11/24   20:04   26384 a.txt
    -a---    2011/11/24   20:26   12060 alias
    -a---    2011/11/24   20:27   12060 alias.ps1
    -a---    2011/11/23   17:25     0 b.txt
    -a---    2011/11/23   17:25     0 c.txt
    -a---    2011/11/23   17:25     0 d.txt
    -a---    2011/11/25   11:20    556 employee.xml
    -a---    2011/11/29   19:23   21466 function.ps1
    -a---    2011/11/28   11:12    186 LogoTestConfig.xml
    -a---    2011/11/24   17:37    7420 name.html
    -a---    2011/11/28   15:30     63 ping.bat
    -a---    2011/11/24   17:44   735892 Powershell_Cmdlets.html
    -a---    2011/11/30   16:04    2556 psdrive.html
    -a---     2011/12/2   18:47    140 test.ps1
    -a---    2011/11/23   17:37    242 test.txt
    -a---    2011/11/28   16:42    170 test.vbs
    PS C:Powershell> $result=ls
    PS C:Powershell> $result.Count
    20
    


    数组的每一个元素存放的是一个System.IO.DirectoryInfo对象。
    当我们输出这些对象时,Powershell会自动帮我们把它转换成友好的文本格式。

    PS C:Powershell> $result[0].gettype().fullname
    System.IO.DirectoryInfo
    PS C:Powershell> $result[0]
      Directory: C:Powershell
    Mode        LastWriteTime   Length Name
    ----        -------------   ------ ----
    d----    2011/11/23   17:25      ABC对于任何一个对象都可以使用Format-List * 查看它所有的属性和方法。
    
    PS C:Powershell> $result[0] | fl *
    
    PSPath      : Microsoft.PowerShell.CoreFileSystem::C:PowershellABC
    PSParentPath   : Microsoft.PowerShell.CoreFileSystem::C:Powershell
    PSChildName    : ABC
    PSDrive      : C
    PSProvider    : Microsoft.PowerShell.CoreFileSystem
    PSIsContainer   : True
    BaseName     : ABC
    Mode       : d----
    Name       : ABC
    Parent      : Powershell
    Exists      : True
    Root       : C:
    FullName     : C:PowershellABC
    Extension     :
    CreationTime   : 2011/11/23 17:25:53
    CreationTimeUtc  : 2011/11/23 9:25:53
    LastAccessTime  : 2011/11/23 17:25:53
    LastAccessTimeUtc : 2011/11/23 9:25:53
    LastWriteTime   : 2011/11/23 17:25:53
    LastWriteTimeUtc : 2011/11/23 9:25:53
    Attributes    : Directory
    

    您可能感兴趣的文章:
    • Windows Powershell 创建数组
    • Windows Powershell 访问数组
    • Windows Powershell 复制数组
    • Windows Powershell强类型数组
    • Windows Powershell使用哈希表
    • Windows Powershell使用管道
    上一篇:Windows Powershell 变量的幕后管理
    下一篇:Windows Powershell 创建数组
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Windows Powershell 命令返回数组 Windows,Powershell,命令,返回,