lorsumalpha
Goto Top

Output in .csv-Datei variiert nur einen Parameter

Moin!
$outarray = @('')  

Get-ChildItem C:\Temp\2 -filter *.xml | ForEach-Object {
    [xml]$empDetails = Get-Content -path C:\Temp\2\$_
    $outarray += New-Object PsObject -property @{
        'Client' = [string]$empDetails.BatteryReport.SystemInformation.ComputerName;  
        'DesignCapacity' = [string]$empDetail.DesignCapacity;  
        'FullChargeCapacity' = [string]$empDetail.FullChargeCapacity  
    } |  Export-CSV -Append -Path "C:\Temp\2\Tedst.csv" -NoTypeInformation     
}

Der Code soll den Battery Report von mehreren Geräten in eine CSV-Datei packen.
Den Clientnamen kriegt er auch hin (Folgender Output):
FullChargeCapacity,"DesignCapacity","Client"  
19049,"41998","CLI-C20000"  
19049,"41998","CLI-C19122"  

Nur die beiden anderen Werte bleiben gleich auch nach Änderung in den XML Dateien.

Habe ich vielleicht einen Logik-Fehler?

Danke für alle Hilfe!
Christian

Content-ID: 3750445391

Url: https://administrator.de/contentid/3750445391

Ausgedruckt am: 25.11.2024 um 19:11 Uhr

3714160434
3714160434 25.08.2022 aktualisiert um 15:15:03 Uhr
Goto Top
Joa, nee ... Brauchscht a neu Brill my guadsder. 🙈
$empDetail statt $empDetails benutzt.
lorsumalpha
lorsumalpha 25.08.2022 um 15:15:08 Uhr
Goto Top
Zitat von @3714160434:

Joa, nee ... Tippfehler. 🙈
$empDetail statt $empDetails

Jetzt hab ichs gesehen ;D ups...
aber irgendwie gibt er mir anstatt die vorherigen Werte nun nur noch Blanko Sachen raus - Den Clientnamen kriegt er hin

$outarray = @()
Get-ChildItem C:\Temp\2 -filter *.xml | 
    ForEach-Object {
        [xml]$empDetails = Get-Content C:\Temp\2\$_
            $outarray += New-Object PsObject -property @{
            'Client' = [string]$empDetails.BatteryReport.SystemInformation.ComputerName;  
            'DesignCapacity' = [string]$empDetails.DesignCapacity;  
            'FullChargeCapacity' = [string]$empDetails.FullChargeCapacity  
        } |  Export-CSV -Append -Path "C:\Temp\2\Teddst.csv" -NoTypeInformation     
    }

Output:
FullChargeCapacity,"DesignCapacity","Client"  
,"","CLI-CTESTO"  
,"","CLI-CARTMANN"  
3714160434
Lösung 3714160434 25.08.2022 aktualisiert um 15:19:26 Uhr
Goto Top
Erstens ist da viel überflüssiges drin, zweitens kennt hier keiner den Inhalt deiner XML Datei ...
Get-ChildItem C:\Temp\2 -filter *.xml | ForEach-Object {
        [xml]$empDetails = Get-Content $_.Fullname
        [pscustomobject]@{
            'Client' = [string]$empDetails.BatteryReport.SystemInformation.ComputerName;  
            'DesignCapacity' = [string]$empDetails.BatteryReport.Batteries.Battery.DesignCapacity  
            'FullChargeCapacity' = [string]$empDetails.BatteryReport.Batteries.Battery.FullChargeCapacity  
        }
} | Export-CSV -Path "C:\Temp\2\Teddst.csv" -NoTypeInformation  
lorsumalpha
lorsumalpha 25.08.2022 aktualisiert um 15:20:40 Uhr
Goto Top
@3714160434 Achja natürlich; hier sind beide:
C20000.xml:
<?xml version="1.0" encoding="utf-8"?>  
<?xml-stylesheet type='text/xsl' href='C:\battery-stylesheet.xsl'?>  
<BatteryReport xmlns="http://schemas.microsoft.com/battery/2012">  
  <ReportInformation>
    <ReportGuid>a59fbc04-2b06-46e0-a581-65f6c8d5feb0</ReportGuid>
    <ReportVersion>1.1</ReportVersion>
    <ScanTime>2022-08-25T08:48:07Z</ScanTime>
    <LocalScanTime>2022-08-25T10:48:07</LocalScanTime>
    <ReportStartTime>2022-08-22T08:48:05Z</ReportStartTime>
    <LocalReportStartTime>2022-08-22T10:48:05</LocalReportStartTime>
    <ReportDuration>3</ReportDuration>
    <UtcOffset>+2:00</UtcOffset>
  </ReportInformation>
  <SystemInformation>
    <ComputerName>CLI-C20000</ComputerName>
    <SystemManufacturer>Dell Inc.</SystemManufacturer>
    <SystemProductName>Latitude 5490</SystemProductName>
    <BIOSDate>05/27/2022</BIOSDate>
    <BIOSVersion>1.23.0</BIOSVersion>
    <OSBuild>19041.1.amd64fre.vb_release.191206-1406</OSBuild>
    <PlatformRole>Mobile</PlatformRole>
    <ConnectedStandby>0</ConnectedStandby>
  </SystemInformation>
  <Batteries>
    <Battery>
      <Id>DELL RRJDX91</Id>
      <Manufacturer>BYD</Manufacturer>
      <SerialNumber>245</SerialNumber>
      <ManufactureDate></ManufactureDate>
      <Chemistry>LION</Chemistry>
      <LongTerm>1</LongTerm>
      <RelativeCapacity>0</RelativeCapacity>
      <DesignCapacity>41998</DesignCapacity>
      <FullChargeCapacity>19043</FullChargeCapacity>
      <CycleCount>0</CycleCount>
    </Battery>
  </Batteries>
</BatteryReport>

C20001.xml:
<?xml version="1.0" encoding="utf-8"?>  
<?xml-stylesheet type='text/xsl' href='C:\battery-stylesheet.xsl'?>  
<BatteryReport xmlns="http://schemas.microsoft.com/battery/2012">  
  <ReportInformation>
    <ReportGuid>a59fbc04-2b06-46e0-a581-65f6c8d5feb0</ReportGuid>
    <ReportVersion>1.1</ReportVersion>
    <ScanTime>2022-08-25T08:48:07Z</ScanTime>
    <LocalScanTime>2022-08-25T10:48:07</LocalScanTime>
    <ReportStartTime>2022-08-22T08:48:05Z</ReportStartTime>
    <LocalReportStartTime>2022-08-22T10:48:05</LocalReportStartTime>
    <ReportDuration>3</ReportDuration>
    <UtcOffset>+2:00</UtcOffset>
  </ReportInformation>
  <SystemInformation>
    <ComputerName>CLI-C20001</ComputerName>
    <SystemManufacturer>Dell Inc.</SystemManufacturer>
    <SystemProductName>Latitude 5490</SystemProductName>
    <BIOSDate>05/27/2022</BIOSDate>
    <BIOSVersion>1.23.0</BIOSVersion>
    <OSBuild>19041.1.amd64fre.vb_release.191206-1406</OSBuild>
    <PlatformRole>Mobile</PlatformRole>
    <ConnectedStandby>0</ConnectedStandby>
  </SystemInformation>
  <Batteries>
    <Battery>
      <Id>DELL RRJDX91</Id>
      <Manufacturer>BYD</Manufacturer>
      <SerialNumber>245</SerialNumber>
      <ManufactureDate></ManufactureDate>
      <Chemistry>LION</Chemistry>
      <LongTerm>1</LongTerm>
      <RelativeCapacity>0</RelativeCapacity>
      <DesignCapacity>20000</DesignCapacity>
      <FullChargeCapacity>15624</FullChargeCapacity>
      <CycleCount>0</CycleCount>
    </Battery>
  </Batteries>
</BatteryReport>
3714160434
3714160434 25.08.2022 aktualisiert um 15:24:55 Uhr
Goto Top
Joa dann ist klar du hast den falschen Pfad zu den Properties in der XML angegeben, hab's oben angepasst.
lorsumalpha
lorsumalpha 25.08.2022 um 15:25:02 Uhr
Goto Top
Zitat von @3714160434:

Joa dann ist klar du hast den falschen Pfad zu den Properties der XML angegeben, hab's oben angepasst.

Du hast mir meinen Tag gerettet! Danke dir face-smile
Einen schönen angenehmen Tag dir noch ;)