maddig
Goto Top

CMD cURL Access Token parsen

Hallo,

ich habe ein Problem mit einem CMD Script. Und zwar in dem Script eine Datei per cURL zu einem Server geschickt. Die cURL Version wurde angehoben und seitdem ist die Ausgabe bei der cURL Anfrage anders.

Ausgabe bei einer Anfrage:

HTTP/1.1 200 Connection established

HTTP/1.1 200 OK
Cache-Control: no-store
Pragma: no-cache
Content-Type: application/json;charset=UTF-8
Content-Length: 194
Date: Tue, 06 Dec 2016 08:02:45 GMT
Set-Cookie: TS0112afd0=01xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxa72e; Path=/

{"access_token":"r5xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTRxxxxxxxxxxxxxxxM_Vx","refresh_token":"x-7xCxxxxxxo-BxxxxxyUN1","scope":"\/tenant  
.server","token_type":"Bearer","expires_in":28800000}  

Der Befehl:

FOR /F "tokens=2 delims=^:^}" %%A IN  

soll den "access_token":"token" in eine Variable schreiben. Das macht er, aber nimmt die ganze restliche Zeile mit in die Variable. Habt ihr eine Idee wie man den Parser Befehl schreiben kann, um nur den Token zwischen den "" in die Variable zu schreiben?

Mfg
Maddig

Content-Key: 322981

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

Printed on: April 26, 2024 at 08:04 o'clock

Member: maddig
maddig Dec 06, 2016 at 14:04:22 (UTC)
Goto Top
Nachtrag:

Bzw. ich brauche eig nur den Befehl um von dem ganzen String:

{"access_token":"r5xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTRxxxxxxxxxxxxxxxM_Vx","refresh_token":"x-7xCxxxxxxo-BxxxxxyUN1","scope":"\/tenant  
.server","token_type":"Bearer","expires_in":28800000}  

diesen Teil:

r5xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTRxxxxxxxxxxxxxxxM_Vx

in die Variable Token zu schreiben. Und das geht ja mit diesem Befehl:

FOR /F "tokens=2 delims=^:^}" %%A IN (BEFEHL CURL AUFRUF) DO (SET TOKEN=%%A)  

nur hier ist die Option "delims" falsch. Weiß jemand wie ich diese Option richtig setze?
Mitglied: 131381
131381 Dec 06, 2016 updated at 17:45:37 (UTC)
Goto Top
@echo off
for /f tokens^=4^ delims^=^" %%a in ('findstr /i "access_token" "C:\ergebnis.txt"') do set "token=%%a"  
echo %token%

Wozu dann noch Batch wenn man sowieso schon cURL verwendet??? Regex und direkt eine vernünftige Scriptsprache wie Powershell, Bash, PHP etc. wären hier zielgerichteter.