_ [
редактировать - я пропустил пост TheMadTechnician. [ вздох ... ] Я оставлю это здесь на всякий случай, если незначительные различия помогут ОП немного.
edit 2 - TheMadTechnician указал, что использование параметра -Raw
для Get-Content
в этом случае не требуется. удалил это и добавил необходимый -split
, чтобы создать правильный поддельный набор данных Get-Content
.
] _
вот один из способов получить эти данные в CSV. поскольку это действительный XML, вы можете использовать ускоритель типа [xml]
для преобразования его из текста в объект XML. После этого вы можете перейти к XML в том месте, где находятся данные CSV. как только вы окажетесь там, вы можете передать это в командлет ConvertFrom-CSV
, чтобы создать массив объектов.
затем, наконец [ ухмылка ], вы можете экспортировать этот красивый, аккуратный массив в файл CSV с помощью Export-CSV
.
вот код ...
# fake reading in a text file
# in real life, use Get-Content
$InStuff = @'
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header/>
<env:Body>
<ns2:getReportResultCsvResponse xmlns:ns2="XXXXXXXXXXXXXXXXXXXXXXXXXXXXX">
<return>DATE,AGENT GROUP,AGENT NAME,CALLS,HANDLE TIME,Average HANDLE TIME,HOLD TIME,Average HOLD TIME,Average AFTER CALL WORK TIME
2019/04/04,Billy Bob,Joe Joseph,6,04:15:53,00:42:39,00:00:00,00:00:00,00:01:55
2019/04/05,Billy Bob,Joe Joseph,14,04:39:26,00:19:58,00:47:53,00:03:25,00:02:20
2019/04/06,Billy Bob,Joe Joseph,11,06:33:13,00:35:45,00:17:21,00:01:35,00:04:30
2019/04/07,Billy Bob,Joe Joseph,13,05:47:06,00:26:42,00:02:03,00:00:09,00:02:27
2019/04/08,Billy Bob,Joe Joseph,11,03:20:21,00:18:13,00:00:03,00:00:00,00:02:44</return>
</ns2:getReportResultCsvResponse>
</env:Body>
</env:Envelope>
'@ -split [System.Environment]::NewLine
$IS_XML = [xml]$InStuff
$ReportResult = $IS_XML.Envelope.Body.getReportResultCsvResponse.return |
ConvertFrom-Csv
# on screen
$ReportResult
# to CSV
$ReportResult |
Export-Csv -LiteralPath "$env:TEMP\TaylorGreen_-_ReportResult.csv" -NoTypeInformation
усеченный вывод на экран ...
DATE : 2019/04/04
AGENT GROUP : Billy Bob
AGENT NAME : Joe Joseph
CALLS : 6
HANDLE TIME : 04:15:53
Average HANDLE TIME : 00:42:39
HOLD TIME : 00:00:00
Average HOLD TIME : 00:00:00
Average AFTER CALL WORK TIME : 00:01:55
[*...snip...*]
DATE : 2019/04/08
AGENT GROUP : Billy Bob
AGENT NAME : Joe Joseph
CALLS : 11
HANDLE TIME : 03:20:21
Average HANDLE TIME : 00:18:13
HOLD TIME : 00:00:03
Average HOLD TIME : 00:00:00
Average AFTER CALL WORK TIME : 00:02:44
Содержимое файла csv ...
"DATE","AGENT GROUP","AGENT NAME","CALLS","HANDLE TIME","Average HANDLE TIME","HOLD TIME","Average HOLD TIME","Average AFTER CALL WORK TIME"
"2019/04/04","Billy Bob","Joe Joseph","6","04:15:53","00:42:39","00:00:00","00:00:00","00:01:55"
"2019/04/05","Billy Bob","Joe Joseph","14","04:39:26","00:19:58","00:47:53","00:03:25","00:02:20"
"2019/04/06","Billy Bob","Joe Joseph","11","06:33:13","00:35:45","00:17:21","00:01:35","00:04:30"
"2019/04/07","Billy Bob","Joe Joseph","13","05:47:06","00:26:42","00:02:03","00:00:09","00:02:27"
"2019/04/08","Billy Bob","Joe Joseph","11","03:20:21","00:18:13","00:00:03","00:00:00","00:02:44"