【问题标题】:PowerShell: Export-csv writing properties in long arrayPowerShell:在长数组中导出 csv 写入属性
【发布时间】:2013-10-30 17:33:27
【问题描述】:

以下是我的代码示例:


$logpath = @(gci -path "c:\logs")
foreach ($i in $logpath)    
        {
        [array]$n += ($i.tostring()).trimend(".log")
    [array]$t += ($i.tostring()).lastwritetime
    }
$obj = new-object psobject
$obj | Add-Member -MemberType NoteProperty -Name Logname -Value $n
$obj | Add-Member -MemberType NoteProperty -Name LastWriteTime -Value $t
$i | export-csv c:\temp\logs.csv

以下是输出的样子:

Name,LastWriteTime  
----,-------------
Value1...,Value1

以下是我想要的样子:

Name,LastWriteTime  
Value1,Value1
Value2,Value2

【问题讨论】:

    标签: arrays powershell properties


    【解决方案1】:

    您可以使用 basename 属性来代替修剪文件扩展名:

    gci -path "c:\logs" |
    select @{l='Name';e={$_.basename}},Lastwritetime |
    export-csv c:\temp\logs.csv
    

    【讨论】:

      【解决方案2】:

      只是为了使用你的代码,你可以试试这个:

      $logpath = @(gci -path "c:\logs")
      $objects = @() # Empty array
      foreach ($i in $logpath)    
      {
        $n = ($i.tostring()).trimend(".log")
        $t = ($i.tostring()).lastwritetime
      
        $obj = new-object psobject
        $obj | Add-Member -MemberType NoteProperty -Name Logname -Value $n
        $obj | Add-Member -MemberType NoteProperty -Name LastWriteTime -Value $t
        $objects += $obj
      }
      
      $objects | export-csv c:\temp\logs.csv
      

      我只是在循环中使用了一个对象数组。

      【讨论】:

        【解决方案3】:

        你太努力了。只需使用管道,select 所需的属性,然后将结果导出到 CSV:

        $logFolders = 'C:\logs', 'D:\more\logs', 'H:\some\other\logs'
        gci -Path $logFolders `
          | select @{n='Logname';e={$_.Name.TrimEnd(".log")}}, LastWriteTime `
          | Export-Csv 'C:\temp\logs.csv'
        

        【讨论】:

        • 很好的建议。但是,我从三个不同的位置收集至少三种不同类型的日志文件,我需要将它们全部放在同一个 csv 中。我该怎么做呢?
        • @user2905175 Get-ChildItem 采用带有路径的数组。查看更新的答案。
        猜你喜欢
        • 2017-10-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-10
        • 2018-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多