flabs
Goto Top

CSV Datei per script auslesen, Werte in eine URL einsetzen und die URL aufrufen

Hallo zusammen,

ich habe eine TK Anlage, die eine API zur Nebenstellenverwaltung zur Verfügung stellt. Die API funktioniert über einen https post in etwa https://anlage/var1=Nebenstelle/var2=DisplayName/. Als Rückgabewert bekomme ich ein OK.

Ich möchte 100 Nebenstellen einrichten, dazu habe ich eine CSV Datei mit den Spalten var1,var2,... in jeder Zeile steht eine Nebenstelle in var1 und var2 der Displayname.

Ich bin absoluter Anfänger im scripten mit Datenimport und Weiterverarbeitung
Meine Idee in einem script eine Schleife bauen, die die CSV Datei Zeile für Zeile ausließt und pro Zeile die Werte von var1 und var2 in die URL einsetzt und anschließend mit z.B. aufruft.
Die Schleife wird so lange durchlaufen bis die letzte Zeile gelesen wurde.

Das klingt jetzt nicht so schwierig, aber mit fehlt irgendwie der Einstieg.

Wie lese ich die Datei aus und übergebe die Werte an die URL?


Vielen Dank für nützliche Hinweise

Gruß

Content-ID: 359288

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

Ausgedruckt am: 22.11.2024 um 03:11 Uhr

rubberman
rubberman 27.12.2017 um 23:34:48 Uhr
Goto Top
- Gibt es eine Kopfzeile in deiner CSV Datei?
- Sind die Daten durch Komma oder Semikolon getrennt?
- Stehen die Einzeldaten in Anführungszeichen eingeschlossen und können diese ebenfalls Kommas oder Semikolons enthalten?
- Enthalten die Daten Zeichen, die in URLs nicht erlaubt sind und vorher konvertiert werden müssen?
- Was ist unter ...
und anschließend mit z.B. aufruft.
... zu verstehen?

Fragen über Fragen ...

Steffen
135051
Lösung 135051 28.12.2017 aktualisiert um 15:34:38 Uhr
Goto Top
Bei einer CSV mit
Nebenstelle;DisplayName
123;user1
456;user2
ob mit oder ohne Anführungszeichen ist bei Powershell egal.
Mit Powershell dann schnell erledigt:
Import-CSV "d:\nebenstellen.csv" -delimiter ";" | %{  
    iwr -uri "https://anlage/$([System.Net.Webutility]::UrlEncode($_.Nebenstelle))/$($([System.Net.Webutility]::UrlEncode($_.DisplayName))/" -Method Get  
}
Oder wenn es unbedingt Batch sein muss:
@echo off
for /f "usebackq skip=1 tokens=1,2 delims=;" %%a in ("D:\nebenstellen.csv") do start "" "https://anlage/%%a/%%b/"  
Gruß @135051
flabs
flabs 28.12.2017 um 13:14:54 Uhr
Goto Top
Hallo,

Semikolon, keine Anführungszeichen, ggfs. Leerzeichen beim Displaynamen Vorname Nachname. Nein, die Quelldaten sind normalisiert und enthalten keine unerlaubten Zeichen.

Die Spalten enthalten eine eindeutige Überschrift. Nemen wir an, die Datei Nebeenstellen.csv ist wie folgt aufgebaut


Nebenstelle;Displayname;
4711;Willy Wuff;
4712;Benjamin Blümchen;

Dann soll das script daraus folgendes bauen

https://anlage/4711/Willy Wuff/ und die zusammengesetzte URL einmal aufrufen, damit in der Anlage eine neue Nebenstelle angelegt wird. Das meine ich mit ausführen. Anschließend von vorn beginnen und die Zeile 2 auslesen
135051
135051 28.12.2017 aktualisiert um 13:37:50 Uhr
Goto Top
Oben auf deine Bedingungen angepasst und zusätzlich eine Batchversion hinzugefügt falls das gewünscht ist.
rubberman
rubberman 28.12.2017 um 14:40:17 Uhr
Goto Top
Japp, Powershell. Batch ist da nix. Ein [uri]::EscapeDataString(...)o.Ä. hätte ich aber bei Leerzeichen und Umlauten definitiv drin gelassen.

Steffen