PowerShell Kleines Script in Powershell um Daten aus einer CSV in Arrays Übertragen

MeisterMicha

Newbie
Registriert
Feb. 2020
Beiträge
3
Hallo liebe Gemeinde.
Und zwar benötige ich ein kleines Script, welches Daten aus einer CSV liest (Nur eine Spalte mit mehreren Zeilen, wo Zahlen drin stehen), diese dann in Arrays packt.

In einer Schleife soll dann ein Link abgerufen werden und am ende des Links soll der Wert des Arrays eingetragen werden.
Ich dachte, dass bekomme ich schon irgendwie zusammen gewürfelt, doch leider habe ich mich überschätzt.

Ich hab es schon hinbekommen, den Internet Explorer zu öffnen, doch leider nicht wieder zu schließen. Da ich am Ende nicht Pro Array, ein Browser geöffnet haben möchte.
Geht das auch ganz elegant, ohne den Browser visuell zu öffnen?
  1. $ARRAY = 112233445566,665544332211
  2. for ($i=0; $i -1; $i++){
  3. $ie = new-object -com “InternetExplorer.Application”
  4. $ie.Navigate(“http:beispiellink.de/?add=$ARRAY
    [*]$ie.visible = $true
    [*]}

Ich habe es auch schon bekommen, die Daten auszulesen, leider komme ich nicht drauf, wie ich dann die jeweilige Zeile zum Verarbeiten in Array hinterlege.

$ausgabe=Import-CSV -Path "C:\Users\sxx\Desktop\mac.csv" -Delimiter ";"
$ausgabe

Wäre nett, wenn mir da jemand weiterhelfen könnte!

Ich bedanke mich schon mal für Antworten!
 
ich bin gerade verwirrt ... an welcher Stelle hängst du jetzt genau? CSV einlesen und dann pro Zeile verarbeiten?
Und was soll der Browser machen? Also warum brauchst du einen Browser?
 
Genau, an der Stelle um die ausgelesen Daten zu verarbeiten. Also jede Zeile in eine variable.

Einem Browser brauche ich nicht. Es soll einfach nur der Link ausgeführt werden.
Das sorgt dafür, dass die Daten dann in eine Datenbank eingetragen werden.
 
abcddcba schrieb:
ich bin gerade verwirrt ...
Da scheinst Du nicht der einzige zu sein. Man schaue sich mal die for()-Schleife an:
MeisterMicha schrieb:
for ($i=0; $i -1; $i++){
So eine hab ich noch nie gesehen! Würde wohl ad infinitum laufen, das Ding.

Wenn man einen Parameter z.B. an ein Backend im Netz übermitteln möchte, kann man dafür prima "curl" benutzen - das gibt's mit etwas Aufwand auch für Windows (können die neuesten Powershells das wohl schon ab Werk?).

Der Algorithmus wäre ein solcher, dass man eine funktionierende Schleife über die Array-Länge laufen lässt und bei jeder Iteration das entsprechende Array-Element extrahiert und als Parameter mit curl auf die Reise schickt - netterweise mit einer kleinen Pause danach.
 
Also es sollen Zahlen aus EINER CSV in ein Array gepackt und dann in einer Schleife das einzelne Array an einen Webserver gesendet werden?
Wie kommt denn die Schleife für den WebRequest zustande, wenn man das komplette Array auf einmal an den Webserver sendet?
Ist doch dann nur ein Aufruf oder verstehe ich dich falsch?

Für Webaufrufe kannst einfach "Invoke-WebRequest" nutzen.

PowerShell:
$csv = Import-CSV -Path "C:\Users\sxx\Desktop\mac.csv" -Delimiter ";" -Encoding utf8 
$baseUri = 'http://beispiellink.de/?add=' 

$arrayString = $csv.HeaderName -join ',' # dein Array als String mit Komma getrennt. Der Spaltenname "Headername" muss noch angepasst werden 
$uri = "$($baseUri)$($arrayString)" 
Invoke-WebRequest -Uri $uri -Method Get
 
Zuletzt bearbeitet:
Das funktioniert schon mal super! Vielen Dank!
Leider erlaubt es mir aber die Seite nicht, mehrere Parameter gleichzeitig zu übergeben, deshalb wollte bzw. Müsste ich das mit einer Schleife lösen.
Und da hakt es bei mir.
Ich möchte jeden ausgelesen Wert einzeln übertragen.

Aber vielen vielen Dank schon mal für eure Ratschläge :)
 
Da stell ich dir jetzt mal die Aufgabe.
Folgende Angaben gibt es:
  • Den CSV-Input hast du bereits
  • Die einzelnen Items (Einträge/Zeilen) eines Arrays (den CSV Input/Zeilen der CSV-Datei) kann man durch:
    ForEach($item in $csv){
    <<<Do-It>>>
    }

    abarbeiten.

    Deshalb.....
    Do IT ;)
 
Zuletzt bearbeitet:
Zurück
Oben