V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
phpfpm
V2EX  ›  Windows

PowerShell 如何用管道去把一个流的增量提交给某个程序(like curl,请求一个接口)?

  •  
  •   phpfpm · 2020-03-03 11:45:54 +08:00 · 1315 次点击
    这是一个创建于 1708 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在一台 windows 的机器上,有一个不断增加的 log

    利用 PowerShell 的Get-Content

    PS \> Get-Content z:\foo.log -wait
    

    可以动态的 tail 出来 log 的增量(类似 tail ) 之后用管道给 where 可以 filter 一些关键词

    PS \> Get-Content z:\foo.log -wait | where {$_ -match "foo|bar|baz"}
    
    

    所以我想问一下如何再加一层管道把每一行的内容给到一个命令呢

    类似于

    ....... | Curl.exe http://foo.bar/collect -x $_
    

    这样我就可以在服务端根据日志的增量进行一些报警什么的了?

    2 条回复    2020-03-03 15:38:02 +08:00
    ps1aniuge
        1
    ps1aniuge  
       2020-03-03 15:36:40 +08:00
    Get-Content z:\foo.log -wait | where {$_ -match "foo|bar|baz"} | 过滤器 1 | 过滤器 2

    搜 powershell 过滤器,

    powershell 过滤器,类似于函数,它 从 $_ 接受数据,并把结果发送到 $_ ,即向管道后方传递。
    ps1aniuge
        2
    ps1aniuge  
       2020-03-03 15:38:02 +08:00
    请管理帮忙转移,此帖子到 powershell 区,谢谢。
    https://www.v2ex.com/go/powershell
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3592 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 04:26 · PVG 12:26 · LAX 20:26 · JFK 23:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.