尾部一个日志文件,如果匹配触发一个actrion

时间:2016-11-17 16:30:32

标签: powershell tail

我目前正在使用以下代码行通过PowerShell返回最新的日志行

Get-Content -Path C:\folder\thisisalog.log -Tail 1 -Wait |
    Where {$_ -match "Remote_http"}

这样可以正常工作,并且每次匹配" Remote_http"的日志时都会写入控制台。已记录。

但是,我想要做的是在返回时运行另一个脚本。 到目前为止,我已经尝试添加一个变量并检查它是否为空而没有运气,我尝试使用if语句但没有成功。 尝试这两个脚本无限期地运行,没有输出到控制台或triigers。

我认为这可能与导致问题的-Wait有关。

1 个答案:

答案 0 :(得分:5)

就这样做

library(shiny)
library(DT)
shinyApp(
  ui = fluidPage(
    title = 'Radio buttons in a table',
    DT::dataTableOutput('foo'),
    verbatimTextOutput('sel')
  ),
  server = function(input, output, session) {

    m = data.table(
      month1 = month.abb,
      A = '1',
      B = '2',
      C = '3',
      QWE = runif(12)
    )
    m[, A := sprintf(
      '<input type="radio" name="%s" value="%s"/>',
      month1, m[, A]
    )]
    m[, B := sprintf(
      '<input type="radio" name="%s" value="%s"/>',
      month1, m[, B]
    )]
    m[, C := sprintf(
      '<input type="radio" name="%s" value="%s"/>',
      month1, m[, C]
    )]

    output$foo = DT::renderDataTable(
      m, escape = FALSE, selection = 'none', server = FALSE, rownames=FALSE,
      options = list(dom = 't', paging = FALSE, ordering = FALSE),
      callback = JS("table.rows().every(function(i, tab, row) {
                    var $this = $(this.node());
                    $this.attr('id', this.data()[0]);
                    $this.addClass('shiny-input-radiogroup');
  });
                    Shiny.unbindAll(table.table().node());
                    Shiny.bindAll(table.table().node());")
    )
    output$sel = renderPrint({
      str(sapply(month.abb, function(i) input[[i]]))
    })
    }
)

或直接进入你的

Get-Content -Path C:\folder\thisisalog.log -Tail 1 -Wait | % {if ($_ -match "Remote_http") {write-host "run code here"}}