我尝试将多个 .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
路径......
答案 0 :(得分:2)
您只需使用Import-CSV
cmdlet加载CSV而不是Get-Content
和convertTo-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