【问题标题】:How do i isolate a particular part of the output of a powershell command?如何隔离 powershell 命令输出的特定部分?
【发布时间】:2017-09-18 11:22:27
【问题描述】:

我正在尝试分离 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

使用此代码,我省略了第一行,但保留了空白行和数字上的附加标签。无论如何将数字分配给单独的数组。请注意,在某些情况下,当我使用此代码时,会有更多行类似于带有数字的行。因此,我可能需要将多个数字保留在一个数组中。

我将不胜感激以任何方式提供帮助。我浏览了整个网站,但没有找到一个例子。

非常感谢,

埃利亚斯

【问题讨论】:

    标签: powershell


    【解决方案1】:

    你已经接近了。使用范围运算符..,并计算正确的索引。

    $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
    

    【讨论】:

    • 嗨,我想你可能误解了我的意思。我希望每行中的所有数字在数组中都有自己的条目。示例 {1babhdjf,12845783,89872hjdf}。我很感激你的帮助。我是 powershell 脚本的新手,所以如果您能提供更多说明,将不胜感激。谢谢。
    • @EliasRC:“我希望每一行的所有数字都存在(原文如此)数组中自己的条目。” 他们是。添加了更明确的示例。如果它是错误的,请更明确地说明您的输入。简单的代码,而不是图形的链接。请喜欢我的第一行代码。
    【解决方案2】:

    你应该可以在 1 行代码中做到这一点

    $a = ./adb devices | where {$_ -match '(.*)device$'} | % {$Matches[1]}
    

    命令 where {$_ -match '(.*)device$'} 将获取所有以设备结尾的行

    对于以 device 结尾的每一行,命令 % {$Matches[1]} 将为您获取第一个元素 - 这是设备的序列号

    【讨论】:

    • 您好,感谢您的回复。我试过你的回应,我得到了一条带有号码和标签设备的线路。它没有省略设备标签。我完全复制了它。是不是我做错了什么?
    • 但它确实去掉了多余的行,所以谢谢你,我很感激
    • 我更新了答案..请再试一次..请提供此命令的输出。我目前在 mac 上,所以无法测试自己
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 2021-10-04
    相关资源
    最近更新 更多