powershell - 将 2 个 Powershell 脚本合二为一
问题描述
我有两个 Powershell 脚本在我的 PC 上同时运行,做着类似的工作。每个人都在日志文件中查找刺痛模式,然后将文本字符串写入文本文件。这会动态更新,因此每次日志文件中的字符串更改时,都会在输出文本文件中更新。一切都很好。
我想将这两个脚本合并到一个 Powershell 脚本中,以提高效率。希望这是有道理的。下面是其中一个 Powershell 脚本的示例。除了 $output 文件名不同且 $patterns 不同之外,这两个脚本都是相同的。我希望每个字符串都进入一个 csv 文件。
$log = "LogFile.txt"
$output = "ExampleOutput.txt"
$patterns = @("GroupEvents: Linedup for group (.*), subgroup",
"Workout(.*)",
"GroupEvents: Started in group (.*), subgroup",
"Run Device Selected: (.*)")
function ProcessLog {
[CmdletBinding()] Param([Parameter(ValueFromPipeline)]$item)
Write-Output "Running with $item"
foreach($pattern in $patterns)
{
$save = (Select-String -InputObject $item -Pattern $pattern | % {
$_.Matches.Groups[1].Value })
if(-not [string]::IsNullOrWhitespace($save))
{
$save.Trim('(').Trim(')') | Set-Content $output
return
}
}
}
Get-Content -Tail 0 -Wait -Encoding "UTF8" $log | % { $_ | ProcessLog }
我意识到这可能不像听起来那么简单,欢迎任何其他想法。也许每个单独的字符串都可以写入逗号分隔的 csv 中的不同选项卡
解决方案
推荐阅读
- python - Python/Pandas 外部合并不包括所有相关列
- spring - 如何在 Spring Boot 中使用 Stream 和 Mongo db
- excel - 工作表索引、工作表名称和显示工作表名称之间的差异
- python - Django:django-admin-sortable2 包代码是如何工作的?
- json - 从嵌套数组 Json 中获取可用数字
- can-bus - 使用 'on message' 在 CAPL 中的 .byte(1) 中查找消息
- ruby - “+1”给我的结果与红宝石中的“+1”不同?
- animation - 将带有动画的 GLB 转换为 USD 格式?
- python - 我不知道我做错了什么,我已经按照指南进行操作,可能是过时的软件问题还是什么?
- typescript - 如何创建 Typescript 映射类型以将元素数组映射到由每个条目的属性键入的 Record?