robx
Goto Top

String mit dynamischer Länge und enthaltenen Leerzeichen zerlegen und Variablen zuweisen

Hallo,
ich habe einen String mit dynamischer Länge und enthaltenen Leerzeichen in z.B. folgender Form:
Fall 1)
 "<LWBuchstabe>:\xx  xx\xx  xx\xxx\xx  xx\xxx\test"  
oder Fall 2)
 "<LWBuchstabe>:\xx  xx\xx  xx\xxx\xx  xx\xxx\test /XD VV WW XX YY ZZ"  
also dynamische Länge, variierender Inhalt und gelegentlich "/XD" gefolgt von Verzeichnisnamen (ebenfalls unterschiedlich lang, variierender Inhalt).
Wie kann ich
für Fall 1) den gesamten string an Variable a
und
für Fall 2) den Teil-string VOR "/XD" ("<LWBuchstabe>:\test und test\xx xx\xxx\xx xx\xxx\test") an Variable a
und den Rest-string ("/XD VV WW XX YY ZZ") an Variable b zuweisen.
Ich komme hier nicht weiter.
@echo off
set "str01=d:\xx  xx\xx  xx\xxx\xx  xx\xxx\test"  
set "str02=d:\xx  xx\xx  xx\xxx\xx  xx\xxx\test /XD VV WW XX YY ZZ"  

for /f "tokens=1-2,* delims=\" %%a in ("%str01%") do echo %%a %%b  
for /f "tokens=1-2,* delims=" %%a in ("%str01%") do echo %%a %%b  
for /f "tokens=1-2,* delims=\" %%a in ("%str02%") do echo %%a %%b  
for /f "tokens=1-2,* delims=" %%a in ("%str02%") do echo %%a %%b  
pause
Bin sehr dankbar für jeden Tip.
Gruß,
Rob

Content-ID: 247188

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

Ausgedruckt am: 25.11.2024 um 08:11 Uhr

bastla
Lösung bastla 22.08.2014 aktualisiert um 17:13:28 Uhr
Goto Top
Hallo robx!

Mit einem kleinen Unterprogramm etwa so:
@echo off & setlocal
set "str01=d:\xx  xx\xx  xx\xxx\xx  xx\xxx\test"  
call :Zerlegung "%str01%"  
set "str02=d:\xx  xx\xx  xx\xxx\xx  xx\xxx\test    /XD VV WW XX YY ZZ"  
call :Zerlegung "%str02%"  
echo Hier geht's weiter ...  
goto :eof

:Zerlegung
set "Teil2="  
for /f "tokens=1* delims=/" %%a in (%1) do set "Teil1=%%a" & set "Teil2=%%b"  
if defined Teil2 set "Teil2=/%Teil2%"  
:Wh
if "%Teil1:~-1%"==" " set "Teil1=%Teil1:~,-1%" & goto :Wh  
echo "%Teil1%"_"%Teil2%"  
goto :eof
Die ":Wh"-Schleife sorgt für das Entfernen von "trailing blanks" (zu Demozwecken befinden sich vor "/XD" 3 Leerzeichen) in "%Teil1%".

Grüße
bastla
robx
robx 22.08.2014 um 17:11:15 Uhr
Goto Top
Hallo bastla,

phantastisch! - das "kleine Unterprogramm" face-smile

(Mal wieder) Riesen Dank an Dich!
Für Deine Zeit + KLASSE Unterstützung !

Gruß, Rob