String in xml Datei finden und die 7 Zeichen danach an Variable übergeben
Hallo zusammen! Ich habe ein Problemchen welches ich bisher leider nicht mit Hifle des Forums lösen konnte!
Also: ich habe die XML Datei "c:\temp\test.xml"
In dieser Datei möchte ich folgenden String finden: "</drive_name><slot>"
In Gänze steht in dieser Zeile: "</drive_name><slot>Slot: 8"
Wobei ich das "Slot: 8" an eine Variable zur Weiterverarbeitung übergeben möchte.
Habe schon diverse Lösungsansätze getestet....ohne Erfolg!
Ich steh wirklich auf dem Schlauch!
Kann mir jemand helfen?
Gruß Flash
Also: ich habe die XML Datei "c:\temp\test.xml"
In dieser Datei möchte ich folgenden String finden: "</drive_name><slot>"
In Gänze steht in dieser Zeile: "</drive_name><slot>Slot: 8"
Wobei ich das "Slot: 8" an eine Variable zur Weiterverarbeitung übergeben möchte.
Habe schon diverse Lösungsansätze getestet....ohne Erfolg!
Ich steh wirklich auf dem Schlauch!
Kann mir jemand helfen?
Gruß Flash
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 130918
Url: https://administrator.de/forum/string-in-xml-datei-finden-und-die-7-zeichen-danach-an-variable-uebergeben-130918.html
Ausgedruckt am: 24.12.2024 um 13:12 Uhr
14 Kommentare
Neuester Kommentar
Hallo flash-gordon!
Der folgende Batch sollte auch für mehrere entsprechende Einträge die gewünschten 7 Zeichen (es wird vorausgesetzt, dass diese tatsächlich vorhanden sind) zurück- (bzw aus-) geben:
Je nach tatsächlicher Anzahl der "Slot:"-Einträge bzw gewünschter Weiterverarbeitung könnte Zeile 10 zB so umformuliert werden:
Grüße
bastla
Der folgende Batch sollte auch für mehrere entsprechende Einträge die gewünschten 7 Zeichen (es wird vorausgesetzt, dass diese tatsächlich vorhanden sind) zurück- (bzw aus-) geben:
@echo off & setlocal
set "Datei=C:\Temp\test.xml"
set "Such=</drive_name><slot>"
set "ZAnzahl=7"
set GT=%temp%\GetText.vbs
>%GT% echo Z=%ZAnzahl%:S="%Such%":L=Len(S):T=CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0)).ReadAll
>>%GT% echo P=1:F=InStr(P,T,"%Such%"):Do While F^>0:P=F+L:WScript.Echo Mid(T,P,Z):F=InStr(P,T,"%Such%"):Loop
for /f "delims=" %%i in ('cscript //nologo %GT% "%Datei%"') do echo %%i
for /f "delims=" %%i in ('cscript //nologo %GT% "%Datei%"') do set "Slot=%%i"
bastla
Hallo flash-gordon!
Dass die Ausgabe unter Anführungszeichen erfolgen würde, kann ich mir überhaupt nicht vorstellen ...
Kannst Du ein Beispiel Deiner "xml"-Datei und den konkret verwendeten Script-Code posten (jeweils als formatiert)?
[Edit] Sollte für die "xml"-Datei Unicode verwendet werden, müsste die Zeile 7 geändert werden:
[/Edit]
Grüße
bastla
Dass die Ausgabe unter Anführungszeichen erfolgen würde, kann ich mir überhaupt nicht vorstellen ...
Kannst Du ein Beispiel Deiner "xml"-Datei und den konkret verwendeten Script-Code posten (jeweils als formatiert)?
[Edit] Sollte für die "xml"-Datei Unicode verwendet werden, müsste die Zeile 7 geändert werden:
>%GT% echo Z=%ZAnzahl%:S="%Such%":L=Len(S):T=CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0),1,True).ReadAll
Grüße
bastla
Hallo flash-gordon!
Beim Test mit Deinen beiden geposteten Dateien erhalte ich als Ergebnis wie gewünscht
Könnte es sein, dass die "xml"-Datei ev tatsächlich nicht im ASCII- bzw ANSI-Format vorliegt? In diesem Fall siehe mein "[Edit]" oben ...
Grüße
bastla
P.S.: Die Zeile
ist nicht erforderlich, da das VBScript ohnehin bei jedem Durchlauf neu erstellt wird (siehe Zeile 11 mit einem einzelnen ">") - selbst wenn Dein
Beim Test mit Deinen beiden geposteten Dateien erhalte ich als Ergebnis wie gewünscht
"Slot: 8"
Grüße
bastla
P.S.: Die Zeile
del C:\Temp\GetText.vbs
%temp%
-Pfad tatsächlich auf "C:\Temp
" zeigen sollte ...