gpt4 book ai didi

powershell - 如何过滤Powershell中来自控制台程序的行?

转载 作者:行者123 更新时间:2023-12-02 23:07:50 24 4
gpt4 key购买 nike

我有一个.exe控制台程序,该程序以以下格式将结果放入控制台:

 ------------------ ----------- ----------------
CompanyName CompanyId CompanyType
------------------ ----------- ----------------
test1 1 Root
test2 2 Center
test3 3 Company
------------------ ----------- ----------------

我想在PowerShell脚本中进行选择,并按 CompanyName进行过滤。

我尝试了:
MyTool.exe companies | where {$_.CompanyName -eq 'test1'}

但这似乎不起作用。

最佳答案

这是将EXE输出转换为对象的Powershell集合的一种方法。它能做什么 ...

  • 创建您的exe文件
  • 的输出的伪造版本
  • 过滤掉带有重复连字符的行
  • 用什么都不替换前导空格
  • 用逗号替换2个或多个空格
  • 将类似于CSV的字符串数组转换为Powershell对象的集合

  • 这是代码[咧嘴] ...
    # fake getting string output from an EXE
    $InStuff = @'
    ------------------ ----------- ----------------
    CompanyName CompanyId CompanyType
    ------------------ ----------- ----------------
    test1 1 Root
    test2 2 Center
    test3 3 Company
    ------------------ ----------- ----------------
    '@ -split [environment]::NewLine

    $CompanyInfo = $InStuff -notmatch '--{2,}' -replace '^ {1,}' -replace ' {2,}', ',' |
    ConvertFrom-Csv

    $CompanyInfo
    '=' * 30
    $CompanyInfo -match 'Test1'

    输出...
    CompanyName CompanyId CompanyType
    ----------- --------- -----------
    test1 1 Root
    test2 2 Center
    test3 3 Company
    ==============================
    test1 1 Root

    关于powershell - 如何过滤Powershell中来自控制台程序的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55569099/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com