我有一个Power Shell脚本,用于查询xml文档并将结果输出到csv文件。该脚本有效,但我需要将其应用于文件夹中的多个xml文件,然后将结果作为单独的csv输出,以用于具有相同XML名称的每个XML。如何修改此脚本来执行此操作?
PROCESS
{
$xml = [xml](Get-Content .\sample.xml) #Sample XML
$xml.log.event | Select-object @(
@{l="times";e={$_.time}},
@{l="type";e={$_.type}},
@{l="user";e={$_.user}},
@{l="place";e={$_.place}},
@{l="message";e={$_.message}}) |
Export-Csv test.csv -NoTypeInformation
}
答案 0 :(得分:2)
假设一个目录:
$ToProcess = Get-ChildItem -Path 'C:\Temp' -Filter '*.xml'
ForEach ($File in $ToProcess)
{
[Xml]$Xml = Get-Content -Path $File.FullName
$Xml.log.event | Select-Object -Property @(
@{Name='Times';Expression={$_.Time}},
@{Name='Type'; Expression={$_.Type}},
@{Name='User'; Expression={$_.User}},
@{Name='Place';Expression={$_.Place}},
@{Name='Message';Expression={$_.Message}}
) | Export-Csv -Path "C:\Temp\$($File.BaseName).csv" -NoTypeInformation
}