Jump to content

Frage zu Cmdlet Invoke-RestMethod -OutFile


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar

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

 

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...