Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Text mit einer .bat vor und nach einer Zeichenkombination abschneiden

Frage Entwicklung Batch & Shell

Mitglied: hoko

hoko (Level 1) - Jetzt verbinden

14.04.2009, aktualisiert 14:24 Uhr, 4783 Aufrufe, 4 Kommentare

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
Mitglied: bastla
14.04.2009 um 15:06 Uhr
Hallo hoko!

Du könntest es damit versuchen:
01.
@echo off & setlocal 
02.
set "Von=yx4" 
03.
set "Bis=yx" 
04.
set G=%temp%\GetPart.vbs 
05.
>%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) 
06.
 
07.
set "var=1234567 d adfe yx4 dieser text wird benötigt yx6 deiosd yx8 keo" 
08.
set varNeu= 
09.
for /f "delims=" %%i in ('cscript //nologo %G% "%var%" "%Von%" "%Bis%"') do set "varNeu=%%i" 
10.
if defined varNeu (echo #%varNeu%#) else (echo Teistring konnte nicht gebildet werden!)
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:
>%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))
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
Bitte warten ..
Mitglied: hoko
14.04.2009 um 15:30 Uhr
hallo bastla,

das funktioniert schon ganz gut. jetzt habe ich noch das Problem, dass der Var-Teil (aus Zeile 7) ja mit übergeben wird. Also z.B. durch den Aufruf:

trennen.bat "1234567 d adfe yx4 dieser text wird benötigt yx6 deiosd yx8 keo"

Das ändert sich dann entsprechend bei jedem Aufruf. Kann diese Zeile irgendwie mit in die Bat. Datei als Variable eingefügt werden?

Danke & Gruß
hoko
Bitte warten ..
Mitglied: bastla
14.04.2009 um 15:41 Uhr
Hallo hoko!

Du kannst einfach Zeile 7 durch
set "var=%~1"
ersetzen.

Grüße
bastla
Bitte warten ..
Mitglied: hoko
14.04.2009 um 15:46 Uhr
Hallo bastla,

Danke, das war es was ich geuscht habe.

Gruß
hoko
Bitte warten ..
Ähnliche Inhalte
Entwicklung
gelöst Hilfe bei .bat script (1)

Frage von RUBEN123 zum Thema Entwicklung ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

JavaScript
gelöst Datumabhängiger Text in HTML anzeigen (4)

Frage von adm2015 zum Thema JavaScript ...

Batch & Shell
gelöst Text Datei bestimmte Bereiche lesen und in neue Text schreiben (3)

Frage von TurboD zum Thema Batch & Shell ...

Neue Wissensbeiträge
Humor (lol)

Wohnt jemand in Belgien und kann nicht mehr ruhig ausschlafen?

(3)

Information von LordGurke zum Thema Humor (lol) ...

Sicherheits-Tools

Trendmicro OSCE und das Fall Creators Update Win10 RS3

(3)

Information von Henere zum Thema Sicherheits-Tools ...

Microsoft Office

Text in Zahlen umwandeln

Tipp von logische zum Thema Microsoft Office ...

Erkennung und -Abwehr

Infineon TPMs unsicher! Bitlocker ggf. angreifbar

(4)

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Heiß diskutierte Inhalte
Microsoft Office
ICH BIN AM ENDE MEINES IT-WISSENS ANGELANGT!!!! (38)

Frage von 134537 zum Thema Microsoft Office ...

Windows Server
Gruppenrichtlinie greift nicht zu! (24)

Frage von Syosse zum Thema Windows Server ...

Hosting & Housing
Mailserver Software Empfehlungen (21)

Frage von sunics zum Thema Hosting & Housing ...