将多个文件的内容导出到 CSV
Export content of multiple files to a CSV
我正在尝试将多个 .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
行,但 none 似乎行得通。
当我执行 $files.name 时,它会完美地列出文件。
我从代码中得到的错误是“Cannot find path 'C:\Users\Myname\filename1.log' because it does not exist.
。我不明白为什么,因为我从未指定 c:\users
路径..
尝试:
get-content -path $file.Fullname
您可以简单地使用 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"
我正在尝试将多个 .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
行,但 none 似乎行得通。
当我执行 $files.name 时,它会完美地列出文件。
我从代码中得到的错误是“Cannot find path 'C:\Users\Myname\filename1.log' because it does not exist.
。我不明白为什么,因为我从未指定 c:\users
路径..
尝试:
get-content -path $file.Fullname
您可以简单地使用 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"