Text mit einer .bat vor und nach einer Zeichenkombination abschneiden
Hallo,
ich hoffe mir kann einer der Experten helfen.
Ich bekomme aus einen Programm eine Textzeile als Variable übergeben. Jetzt brauche ich aber einen Teil aus dieser Textzeile.
Beispiel:
1234567 d adfe yx4 dieser text wird benötigt yx6 deiosd yx8 keo
oder
456721d qwse yx4 dieser text wird benötigt yx9 deios yx10 dkeo
Es wird also der Text zwischen "yx4" und dem nächsten folgenden "yx*" zur Übergabe an ein anderes programm benötigt.
Wie kann ich das mit einer Batch-Datei erledigen.
Danke für euere Hilfe
hoko
ich hoffe mir kann einer der Experten helfen.
Ich bekomme aus einen Programm eine Textzeile als Variable übergeben. Jetzt brauche ich aber einen Teil aus dieser Textzeile.
Beispiel:
1234567 d adfe yx4 dieser text wird benötigt yx6 deiosd yx8 keo
oder
456721d qwse yx4 dieser text wird benötigt yx9 deios yx10 dkeo
Es wird also der Text zwischen "yx4" und dem nächsten folgenden "yx*" zur Übergabe an ein anderes programm benötigt.
Wie kann ich das mit einer Batch-Datei erledigen.
Danke für euere Hilfe
hoko
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 113806
Url: https://administrator.de/contentid/113806
Ausgedruckt am: 22.11.2024 um 00:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo hoko!
Du könntest es damit versuchen:
Die "Einrahmung" der Ausgabe durch "#" soll zeigen, dass auch die Leerzeichen in die neue Variable übernommen werden - falls dies nicht gewünscht wäre, müsste die folgende Zeile 5 verwendet werden:
Noch ein Hinweis: Es wird bei der Suche nach den Kennzeichen für "Von" und "Bis" Groß-/Kleinschreibung unterschieden - falls sich nicht beide Kennzeichen (in der richtigen Reihenfolge) finden lassen, wird ein leerer String zurückgegeben, was dazu führt, dass %varNeu% danach nicht existiert ("not defined" ist).
Grüße
bastla
Du könntest es damit versuchen:
@echo off & setlocal
set "Von=yx4"
set "Bis=yx"
set G=%temp%\GetPart.vbs
>%G% echo Set a=WScript.Arguments:T=a(0):Von=a(1):L=Len(Von):Bis=a(2):Start=InStr(T,Von):If Start^>0 Then Start=Start+L:Ende=InStr(Start,T,Bis)-Start:If Ende^>Start Then WScript.Echo Mid(T,Start,Ende)
set "var=1234567 d adfe yx4 dieser text wird benötigt yx6 deiosd yx8 keo"
set varNeu=
for /f "delims=" %%i in ('cscript //nologo %G% "%var%" "%Von%" "%Bis%"') do set "varNeu=%%i"
if defined varNeu (echo #%varNeu%#) else (echo Teistring konnte nicht gebildet werden!)
>%G% echo Set a=WScript.Arguments:T=a(0):Von=a(1):L=Len(Von):Bis=a(2):Start=InStr(T,Von):If Start^>0 Then Start=Start+L:Ende=InStr(Start,T,Bis)-Start:If Ende^>Start Then WScript.Echo Trim(Mid(T,Start,Ende))
Grüße
bastla