当前位置: 首页 > 编程笔记 >

在PowerShell中什么是数组?

申屠喜
2023-03-14
本文向大家介绍在PowerShell中什么是数组?,包括了在PowerShell中什么是数组?的使用技巧和注意事项,需要的朋友参考一下

数组由一组具有相同数据类型或不同数据类型的元素组成。当输出包含多行时,输出或存储的变量将自动成为数组。其数据类型为Object []或ArrayList,基本类型为System.arraySystem.Object。

例如,

IPConfig的输出是一个数组。

示例

PS C:\WINDOWS\system32> ipconfig
Windows IP Configuration
Ethernet adapter Ethernet:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Ethernet adapter VirtualBox Host-Only Network:
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::187b:7258:891b:2ba7%19
IPv4 Address. . . . . . . . . . . : 192.168.56.1
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
Wireless LAN adapter Local Area Connection* 3:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Wireless LAN adapter Local Area Connection* 5:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :

如果将Ipconfig存储在变量中并检查其数据类型,则它将为Object []

PS C:\WINDOWS\system32> $ip = ipconfig
PS C:\WINDOWS\system32> $ip.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array

同样,如果您获取任何多行输出,则只能是数组。您可以使用比较方法检查变量是否为数组,如下所示。

$a = "Hello"
$a -is [Array]

输出结果

False


$ip = ipconfig
$ip -is [Array]

输出结果

True

数组索引从0开始。例如,第一行被视为0索引,第二行被视为1,以此类推。但是并非一直如此。当输出显示为多组时,则将第一组输出视为索引值0,将第二组输出视为索引值1。

您可以如下获得ipconfig输出的第二行。

$ip = ipconfig
$ip[0]

输出结果

Windows IP Configuration

您可以过滤特定单词的整个输出,以便使用“选择字符串管道”命令显示包含该单词的行。

例如,检查系统中可用的以太网适配器。

ipconfig | Select-String -pattern "Adapter"

输出结果

Ethernet adapter Ethernet:
Ethernet adapter VirtualBox Host-Only Network:
Wireless LAN adapter Local Area Connection* 3:
Wireless LAN adapter Local Area Connection* 5:
Ethernet adapter Ethernet 3:
Ethernet adapter Ethernet 4:
Wireless LAN adapter Wi-Fi:
Ethernet adapter Bluetooth Network Connection:

同样,您可以过滤IPv4地址。

ipconfig | Select-String -pattern "IPv4 Address"

输出结果

IPv4 Address. . . . . . . . . . . : 192.168.56.1
IPv4 Address. . . . . . . . . . . : 192.168.0.104
 类似资料:
  • 本文向大家介绍PowerShell中的别名是什么?,包括了PowerShell中的别名是什么?的使用技巧和注意事项,需要的朋友参考一下 通常,别名是指命令其他名称。在系统管理员的生活中,他们需要简短而又熟悉的命令。PowerShell的动词名词cmdlet非常系统化,但在日常生活中不实用。因此,系统管理员使用PowerShell别名。  例如,-Dir或ls表示Get-ChildItem, cat

  • 本文向大家介绍在PowerShell中$ error变量的用途是什么?,包括了在PowerShell中$ error变量的用途是什么?的使用技巧和注意事项,需要的朋友参考一下 PowerShell中的错误变量用于查看当前PowerShell会话中生成的错误。我们可以说$Error变量是存储所有错误的容器,并且最新的错误将首先显示。对于下面的示例,我们将$Errorview设置为Category视图

  • 本文向大家介绍PowerShell中的转义字符是什么?,包括了PowerShell中的转义字符是什么?的使用技巧和注意事项,需要的朋友参考一下 PowerShell中转义字符是`,向后撇号(backward apostrophe,是tab键上面的按键,不是单引号),例如: 会输出$env:processor_architecture=AMD64 当然还有一个转义字符是在正则表达式(Regular

  • 问题内容: 我无法理解AnyObject的局限性。 您可以从标题中看到Array是一个结构。但是,此代码有效: 而且不只是文字数组: 但是,我不能为我分配一个结构: 那么,数组毕竟不是真正的结构吗? 问题答案: 这是桥接出现时最有趣的部分… 默认情况下,Swift bridge (和朋友) 至 至 因此,如果需要,编译器会将它们更改为对象 你可以做 并且您不能将/ 分配给,因为它们不是对象类型(可

  • 我在网上看到了许多使用这个的示例脚本。最近,我在自动化TFS的脚本中看到了它: 据我所知,似乎等同于。我错过什么了吗?有什么理由使用括号和额外的美元符号吗?