checko0701 0 Geschrieben 18. Februar 2020 Melden Teilen Geschrieben 18. Februar 2020 Hallo, ich habe folgenden Code: #Ausgabe $object (Das Objekt wird durch Einlesen einer CSV-Datei erzeugt.) ip url id -- --- --- 192.168.1.2 www.google.de 75 192.168.2.4 www.web.de 76 #Code foreacch ($element in $object) { Invoke-RestMethod -Method Post -Uri $url -Body $body -Headers $header -OutFile .\log.out } $url enthält hierbei die Zugriffsurl für meine Datenbank, $body enthält in JSON-Format alle wichtigen Informationen, damit die URL in den Eintrag mit der ID XY in meiner Datenbank ergänzt wird, $header enthält den für den Datenbankzugriff notwendigen Header. Das CmdLet Invoke-RestMethod gibt mir eine durch die API der Datenbank automatisch generierte Rückmeldung ("Url in den Eintrag XY erfolgreich eingetragen.") zurück, welche ich in die Datei log.out rausschreibe. Das Problem ist, dass scheinbar durch die foreach-Schleife die Datei log.out immer wieder überschrieben wird. ($objekt ist nur ein Ausschnitt aus der CSV-Datei. In meinem Skript lese ich die ganze Datei ein.) Wie kann ich das bewerkstelligen, dass jede Rückmeldung an die Datei log.out angehangen wird? $object wird im Skript weiter verwendet und sollte daher nicht überschrieben werden. Kann mir da jemand weiterhelfen? Viele Grüße, checko0701 Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 18. Februar 2020 Melden Teilen Geschrieben 18. Februar 2020 Du hast Tippfehler und Denkfehler in Deinem Code. foreach ($element in $object) { Invoke-RestMethod -Method Post -Uri $element.url -Body $element.body -Headers $element.header -OutFile .\log_$($element.body).out } Mit diesem Schnipsel schreibst Du jeden einzelnen "output" in eine eigene Datei. Wenn alles in einer Datei landen soll, musst Du diesen Export außerhalb der Schleife erledigen. Du könntest erstmal allen Output in einer Variable einsammeln und das dann gesammelt in eine Datei exportieren ... so ungefähr: $Result = foreach ($element in $object) { Invoke-RestMethod -Method Post -Uri $element.url -Body $element.body -Headers $element.header } $Result | Out-File -FilePath .\log.log Zitieren Link zu diesem Kommentar
daabm 1.366 Geschrieben 18. Februar 2020 Melden Teilen Geschrieben 18. Februar 2020 Olaf, man kann keine Denkfehler im Code haben, nur im Kopf SCNR... Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 18. Februar 2020 Melden Teilen Geschrieben 18. Februar 2020 vor einer Stunde schrieb daabm: Olaf, man kann keine Denkfehler im Code haben, nur im Kopf SCNR... hhhmmmm .... warte mal .... aber man kann die Denkfehler im Code manifestieren ... Zitieren Link zu diesem Kommentar
checko0701 0 Geschrieben 19. Februar 2020 Autor Melden Teilen Geschrieben 19. Februar 2020 Hallo BOfH_666, erneut vielen Dank für Deine/Ihre schnelle Hilfe. Habe den Vorschlag umgsetzt. Funktioniert reibungslos. Viele Grüße, checko0701 Zitieren Link zu diesem Kommentar
daabm 1.366 Geschrieben 19. Februar 2020 Melden Teilen Geschrieben 19. Februar 2020 Am 18.2.2020 um 22:23 schrieb BOfH_666: hhhmmmm .... warte mal .... aber man kann die Denkfehler im Code manifestieren ... DAS wiederum unterstütze ich ohne Einschränkung Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.