我正在尝试分离powershell命令输出的一个非常精选的部分。输出看起来像Picture of Output。我想要做的是删除顶部和底部的行,并隔离数字并将其分配给一个数组。到目前为止,我的研究已经能够删除顶线。我到目前为止的代码是:
echo working
cd C:\Users\elias\AppData\Local\Android\sdk\platform-tools
./adb kill-server
./adb start-server
$a = ./adb devices
$lines = $a[1..$a.count]
$lines
Start-Sleep -s 10
使用此代码我省略了第一行,但在数字上保留空白行和附加标签。无论如何都要将数字分配给单独的数组。请注意,在某些情况下,当我使用此代码时,将会有更多类似于具有数字的行。因此,我可能需要在数组中保留多个数字。
我会以任何方式感谢你的帮助。我查看了这个网站并没有找到一个例子。
非常感谢,
Elias
答案 0 :(得分:0)
你关闭了。使用范围运算符..
,并计算正确的索引。
$a = 'first line', 1, 2, 'last line'
$b = $a[1..(($a.Count) - 2)]
$b
--
1
2
我目前无法直接访问PowerShell,因此我使用的是在线PowerShell解释程序。我还不确定相信它有多少。
$a = 'first line', '1babhdjf','12845783', '89872hjdf', 'last line'
$lines = $a[1..(($a.Count) - 2)]
$lines
1babhdjf
12845783
89872hjdf
答案 1 :(得分:0)
您应该可以在一行代码中执行此操作
$a = ./adb devices | where {$_ -match '(.*)device$'} | % {$Matches[1]}
命令{$ _ -match'(。*)device $'}将获取所有以设备结尾的行
对于以设备结尾的每一行,命令%{$ Matches [1]}将为您提供第一个元素 - 即设备的序列号