Variable mit awk befüllen
AWK und Unix-Tools auf Windows-Konsole
Hallo zusammen,
ich hoffe das mir hier einer helfen kann.
Ich habe folgende Anweisung:
Diese liefert mir einen Wert der so aussieht:
Ich versuche jetzt schon seit Stunden dieses Ergebnis in eine Variable umzuleiten und es gelingt mir einfach nicht.
Ich brauche diesen String in der Variable AVX_VER die ich auch im Vorfeld mittels
angelegt habe.
Diese Variable benötige ich um bei einem weiteren Programmaufruf die Versionsnummer mit zu übergeben.
Das alles soll in einem BATCH-File ablaufen und eben mit der Windows-Konsole funktionieren da wir hier nur mit Windows-Clients (XP) arbeiten.
Vielen Dank schon mal auch wenn hier für ein Windows-Problem die Unixer belästigen muß...
gruß
Klaus
Hallo zusammen,
ich hoffe das mir hier einer helfen kann.
Ich habe folgende Anweisung:
cat download.xml | sed s/_/./g | grep "Releaseversion" | awk -v FS="Releaseversion: " "{print $2}" | awk -v FS="\"" "{print $1}"
3.3.12
Ich brauche diesen String in der Variable AVX_VER die ich auch im Vorfeld mittels
set AVX_VER=text
Diese Variable benötige ich um bei einem weiteren Programmaufruf die Versionsnummer mit zu übergeben.
Das alles soll in einem BATCH-File ablaufen und eben mit der Windows-Konsole funktionieren da wir hier nur mit Windows-Clients (XP) arbeiten.
Vielen Dank schon mal auch wenn hier für ein Windows-Problem die Unixer belästigen muß...
gruß
Klaus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 101743
Url: https://administrator.de/forum/variable-mit-awk-befuellen-101743.html
Ausgedruckt am: 23.12.2024 um 12:12 Uhr
12 Kommentare
Neuester Kommentar
Moin Klaus,
wenn ich Dich richtig verstanden habe, ist das erste kryptische Geraffel ("cat download...") eine Winows-Batch-Zeile, die als Output den String "3.3.1.2." auf den Bildschirm zaubert?
Wenn ja, da würde folgende batchzeile diese Ausgabe in eine Variable trümmern:
Mit nur einem %-zeichen vor der laufvariablen (%i statt %%i) kannst Du es auch am CMD-Prompt testen.
Grüße
Biber
wenn ich Dich richtig verstanden habe, ist das erste kryptische Geraffel ("cat download...") eine Winows-Batch-Zeile, die als Output den String "3.3.1.2." auf den Bildschirm zaubert?
Wenn ja, da würde folgende batchzeile diese Ausgabe in eine Variable trümmern:
::.... irgendein.cmd
....
FOR /F %%i in ('cat download ......bla...') do set "AVX_VER=%%i"
::test
echo Variablenwert AVX_VER: [%AVX_VER%]
Mit nur einem %-zeichen vor der laufvariablen (%i statt %%i) kannst Du es auch am CMD-Prompt testen.
Grüße
Biber
Hallo Klaus.
kommt daher, daß Sonderzeichen mit ^ maskiert werden müssen.
Das Pipezeichen | ist so eins, also ^| schreiben.
die download.xml wäre vielleicht effektiver. Du hast mit Sicherheit einige Pipe zuviel
und schön die Code-Formatierung benutzen.
Edit: oder 'n Link, wo man sich die xml runterladen kann.
cu paulepank
"%%i" ist syntaktisch an dieser Stelle nicht verarbeitbar.
kommt daher, daß Sonderzeichen mit ^ maskiert werden müssen.
Das Pipezeichen | ist so eins, also ^| schreiben.
Vielleicht hilft es wenn ich mal die komplette .bat hier poste:
die download.xml wäre vielleicht effektiver. Du hast mit Sicherheit einige Pipe zuviel
und schön die Code-Formatierung benutzen.
Edit: oder 'n Link, wo man sich die xml runterladen kann.
cu paulepank
Naja, nachdem wir Testdaten haben
1. das > am Zeilenende stört --> Workaround mit sed s/^>//g
2. FS="\"" funktioniert in der CMD so auch nicht.
Das wäre noch eine Pipe mehr. Das ist doch ein Gewurschtel.
Da du ja mit sed zunächst noch ein _ ersetzt, trägt dein "String" auch nichts
zur Lösung bei.
Also sende einen Link zum xml-File oder wenn nicht zu groß hier veröffentlichen.
Alles andere ist Flickschusterei.
cu paulepank
1. das > am Zeilenende stört --> Workaround mit sed s/^>//g
2. FS="\"" funktioniert in der CMD so auch nicht.
Das wäre noch eine Pipe mehr. Das ist doch ein Gewurschtel.
Da du ja mit sed zunächst noch ein _ ersetzt, trägt dein "String" auch nichts
zur Lösung bei.
Also sende einen Link zum xml-File oder wenn nicht zu groß hier veröffentlichen.
Alles andere ist Flickschusterei.
cu paulepank
Sorry, Klaus/Blacksaber,
ist mein Fehler,
Ersetze: For %i in ('M:\Daten\meine.bat') do set "AXV_VER=%i"
Durch For /F %i in ('M:\Daten\meine.bat') do set "AXV_VER=%i" :
Ein wegen der unnötigen Verzögerung auch ganz niedergeschlagener
Biber
P.S. BTW - Du setzt bzw. fragst ab zwei unterschiedliche Variablen AVX_VER und AXV_VER....
ist mein Fehler,
Ersetze: For %i in ('M:\Daten\meine.bat') do set "AXV_VER=%i"
Durch For /F %i in ('M:\Daten\meine.bat') do set "AXV_VER=%i" :
Ein wegen der unnötigen Verzögerung auch ganz niedergeschlagener
Biber
P.S. BTW - Du setzt bzw. fragst ab zwei unterschiedliche Variablen AVX_VER und AXV_VER....