【问题标题】:Charting with PowerShell使用 PowerShell 绘制图表
【发布时间】:2019-06-14 03:02:42
【问题描述】:

我想用 PS 读取一个数据文件并在 Excel 中创建一个图表。

我可以在 excel 中打开一个文本文件并创建一个 Linux 系统资源的折线图,如下所示:

接下来,

我从 StackOverflow 复制代码并添加了我的数据文件。 [$Data=Get-Content "C:\Users...\log.txt" -Raw] (Complete Code I used here)

我从 PS 得到的东西是没用的:

那么如何在 PS 中读取数据文件并创建折线图呢?

[最终我想自动化这个过程]

注意: 数据文件如下所示:

Memory      Disk        CPU
 4.96%      70%        0.44%        
 4.96%      70%        0.41%        
 4.96%      70%        0.45%
 etc, etc

【问题讨论】:

  • 您为使用的代码提供的链接就是问题所在。也许您应该参考答案?你检查过这个答案吗? stackoverflow.com/a/25333018/1699071
  • 如果您只想要一个图表,那么您可以直接使用 .NET 图表控件创建它们,而无需使用 Excel:Charting with PowerShell
  • @SAm 我使用了 TheMadTechnician 答案中的代码,但尝试使用文本文件而不是硬编码数据。
  • @boxdog .NET?我不是 Outlook 等之外的 Windows 人员。你能粘贴一个简单的代码 sn-p 来说明我应该怎么做吗?
  • @Marinaio 我之前评论中的链接指向一篇旧的(但仍然相关的)文章,该文章提供了有关如何在 PowerShell 中使用图表控件的分步说明。

标签: excel powershell


【解决方案1】:

您最好将日志文件转换为数组,而不是只导入原始数据:

$Data = Import-csv "C:\Users...\log.txt" -Delimiter "`t"

(假设这是一个制表符分隔的文件)

您在 Excel 中看到的数据并非无用,它只是您使用 Get-Content cmdlet 创建的 PSObject 的属性,这是您在下面引用的行:

$Data |ConvertTo-CSV -NoTypeInformation -Delimiter "`t"| c:\windows\system32\clip.exe

来自help

从CSV转换的对象是原始对象的字符串值,包含属性值,没有方法。


您也可以跳过转换。

使用 Get-Content 保持导入:

$Data=Get-Content "C:\Users...\log.txt" -Raw

并删除 ConvertTo-Csv

$Data | c:\windows\system32\clip.exe

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 2015-06-08
    • 2020-11-10
    • 1970-01-01
    • 1970-01-01
    • 2019-05-03
    • 2011-09-21
    相关资源
    最近更新 更多