将多个文件的内容导出为CSV

时间:2017-04-28 12:48:08

标签: powershell powershell-v3.0

我尝试将多个 .log 文件的内容导出到一个CSV中。

我想我已经接近了,但我无法弄清楚我做错了什么。我猜它在foreach的某个地方:

$dir = "\\server\c$\folder1\folder2"
$filter = "*.log"

$files = Get-ChildItem -path $dir -filter $filter | Sort-Object LastAccessTime -Descending | Select-Object -First 10

foreach ($file in $files){
Get-Content $file | convertTo-csv | export-csv -path "\\server\share\test.csv"
}

我试图以多种方式编写get-content行,但似乎都没有。

当我执行 $ files.name 时,它会完美地列出文件。

我从代码中得到的错误是" Cannot find path 'C:\Users\Myname\filename1.log' because it does not exist.。我不明白为什么,因为我从未说过c:\users路径......

2 个答案:

答案 0 :(得分:2)

您只需使用Import-CSV cmdlet加载CSV而不是Get-ContentconvertTo-csv cmdlet:

$files = Get-ChildItem -path $dir -filter $filter | 
    Sort-Object LastAccessTime -Descending | 
    Select-Object -First 10 | 
    Select-Object -ExpandProperty FullName

Import-Csv -Path $files | Export-Csv "\\server\share\test.csv"

答案 1 :(得分:1)

尝试:

get-content -path $file.Fullname