以数组的最后N个元素代替PowerShell中的第一个元素

Dom*_*tti 2 powershell

快速提问。我有以下几点:

$domain = "my.new.domain.com"
$domain.Split('.')[0,1]
Run Code Online (Sandbox Code Playgroud)

...返回值:

my
new
Run Code Online (Sandbox Code Playgroud)

那太好了,除了我需要最后两个(domain.com),并且不确定如何做到这一点。不幸的是,拆分的数量是可变的(例如test.my.new.domain.com)。一个人怎么说“到底并计数X向后分裂”?

Rez*_*aei 5

要获取N数组的最后一个元素,可以使用以下任一选项:

  • $array | select -Last n
  • $array[-n..-1] (?'..'是范围运算符)

$domain = "my.new.domain.com"
$domain.Split('.') | select -Last 2
Run Code Online (Sandbox Code Playgroud)

将导致:

domain
com
Run Code Online (Sandbox Code Playgroud)

注意

使用select,您可以完成在.NET中使用LINQ方法所做的一些工作,例如:

  • 取得前/后N个元素
  • 跳过前N个元素
  • 选择不同的元素
  • 选择索引处的元素
  • 选择属性的子集