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)
oder Fall 2)
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.
Bin sehr dankbar für jeden Tip.
Gruß,
Rob
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"
"<LWBuchstabe>:\xx xx\xx xx\xxx\xx xx\xxx\test /XD VV WW XX YY ZZ"
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
Gruß,
Rob
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 247188
Url: https://administrator.de/contentid/247188
Ausgedruckt am: 25.11.2024 um 08:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo robx!
Mit einem kleinen Unterprogramm etwa so:
Die ":Wh"-Schleife sorgt für das Entfernen von "trailing blanks" (zu Demozwecken befinden sich vor "/XD" 3 Leerzeichen) in "%Teil1%".
Grüße
bastla
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
Grüße
bastla