【问题标题】:Convert .etl files to .txt in windows powershell在 windows powershell 中将 .etl 文件转换为 .txt
【发布时间】:2022-09-24 03:28:47
【问题描述】:

我正在尝试将 .etl 文件转换为 .txt 文件。 现在,我正在使用以下命令从 .etl 文件中获取 .txt 文件:

Get-WinEvent -Path $Path -Oldest -ErrorAction SilentlyContinue -ErrorVariable errors | ForEach-Object { \"{0},{1},{2},{3},{4}\" -f $_.TimeCreated.ToString(\"yyyy-MM-ddTHH:mm:ss.ffffff\"), $_.Id,$_.Level,$_.ProviderName,$_.Message } `
| Add-Content -Path $LogFilePath

但是,.etl 文件非常大,大约需要一个小时才能完成.

我想知道是否有任何其他方法可以在没有太多开销的情况下将这些 etl 文件转换为 txt 文件。 我尝试研究 tracerpt 工具,但它只将 .etl 文件转换为 .csv/.xml 文件。

  • 如果 ***tracerpt *** 更快,为什么不使用它呢?您声明的其他文件类型只是文本,您可以进一步转换或将 csv 重命名为 txt。所以,我假设,你试过了,并决定你想要一次通过的努力?另外,您是说 csv 的表格格式不可读并且 XML 过载了吗?当您序列化大型数据集/文件时,您应该预期时间影响。 Have looked at this as well
  • 为什么要转换成txt?请改用适当的工具与 etl 进行交互。直接对二进制格式打开过滤显然要快很多

标签: windows powershell


【解决方案1】:

也许这不是您正在寻找的答案,但我仍然建议您。
不幸的是,没有开箱即用的 .NET 方法可以做到这一点。
事件跟踪可能会涉及,但如果你弄清楚了,你将获得性能。

微软有几个关于如何使用 C++ 和本机 API 读取 .etl 文件的示例。

看一下这个:
https://learn.microsoft.com/en-us/windows/win32/etw/configuring-and-starting-an-event-tracing-session

【讨论】:

    【解决方案2】:

    .Net System.IO 调用似乎比Get-ContentSet-Content 更快。将 CSV 直接转换为 TXT 的速度几乎快了两倍,并且应该适用于您扔给它的任何其他格式:

    # $file1 is a 71,070 line CSV
    $file1 = "C:\Users\Username\Desktop\_test.csv"
    $file2 = "C:\Users\Username\Desktop\_test.txt"
    
    #### Test 1 - Get-Content -Raw
    $start1 = Get-Date
        Get-Content $file1 -Raw | Set-Content $file2
    $end1 = Get-Date
    
    #### Test 2 - .NET's System.IO
    $start2 = Get-Date
        $txt = [System.IO.File]::ReadAllText("$file1")
        [System.IO.File]::WriteAllText("$file2", $txt)
    $end2 = Get-Date
    
    New-TimeSpan –Start $Start1 –End $End1
    New-TimeSpan –Start $Start2 –End $End2
    
    # TotalMilliseconds : Attempt [1] 109.3493 [2] 93.7438 [3] 78.1255
    # TotalMilliseconds : Attempt [1]  49.4906 [2] 46.8493 [3] 46.8738
    

    .NET 在进行字符串操作(例如修改示例中的时间和日期格式)时也更快。要获得更好的细分,请查看所有Stack O question & answers here

    【讨论】:

    • OP 询问如何将 etl 转换为 txt,而不是如何打开和写入 txt 文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-11
    • 2021-12-11
    • 1970-01-01
    • 2023-03-18
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多