Leerzeichen nach jedem Zeichen einer Variable einfügen
Hallo zusammen,
habe mit bat Dateien bis jetzt sehr wenig gearbeitet, deswegen benötige ich Eure Hilfe...
Folgendes Problem.
Habe eine Variable, in der eine Telefonnummer gespeichert ist. Diese erhalte ich ohne jede Formate.
Hier ein paar Beispiele:
012345678
0160123456789
+4312344568
Nun bräuchte ich die Telefonnummern folgendermaßen:
0 1 2 3 4 5 6 7 8
0 1 6 0 1 2 3 4 5 6 7 8 9
+ 4 3 1 2 3 4 4 5 6 8
Kann mir jemand helfen?
Besten Dank vorab!
Gruß
Christian
habe mit bat Dateien bis jetzt sehr wenig gearbeitet, deswegen benötige ich Eure Hilfe...
Folgendes Problem.
Habe eine Variable, in der eine Telefonnummer gespeichert ist. Diese erhalte ich ohne jede Formate.
Hier ein paar Beispiele:
012345678
0160123456789
+4312344568
Nun bräuchte ich die Telefonnummern folgendermaßen:
0 1 2 3 4 5 6 7 8
0 1 6 0 1 2 3 4 5 6 7 8 9
+ 4 3 1 2 3 4 4 5 6 8
Kann mir jemand helfen?
Besten Dank vorab!
Gruß
Christian
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 75542
Url: https://administrator.de/forum/leerzeichen-nach-jedem-zeichen-einer-variable-einfuegen-75542.html
Ausgedruckt am: 30.04.2025 um 03:04 Uhr
2 Kommentare
Neuester Kommentar
Hallo Elephantman und willkommen im Forum!
Soferne in Deinen Telefonnummern kein "!" vorkommt, sollte es so gehen:
Da nach jedem einzelnen (also auch dem letzten) Zeichen der Telefonnummer ein Leerzeichen eingefügt wird, sorgt die Zeile nach dem ":Fertig" dafür, dass das überzählige Leerzeichen am Ende entfernt wird.
Wegen der Verwendung von "delayedexpansion" gilt ein "!" als Sonderzeichen (= anstelle von "%" als Begrenzungszeichen für die "verzögert aufzulösende" Variable) und darf daher nicht Inhalt der Telefonnummer sein.
Grüße
bastla
P.S.: Mit "sed" (Download zB hier) ginge das natürlich eleganter, etwa:
Soferne in Deinen Telefonnummern kein "!" vorkommt, sollte es so gehen:
@echo off & setlocal enabledelayedexpansion
set "TelNr=+4312344568"
if not defined TelNr echo Keine Nummer vorhanden & goto :eof
set /a P=0
set TelNrNeu=
:Loop
set Z=!TelNr:~%P%,1!
if "%Z%"=="" goto :Fertig
set "TelNrNeu=%TelNrNeu%%Z% "
set /a P+=1
goto :Loop
:Fertig
set "TelNrNeu=%TelNrNeu:~0,-1%"
echo %TelNrNeu%
goto :eof
Wegen der Verwendung von "delayedexpansion" gilt ein "!" als Sonderzeichen (= anstelle von "%" als Begrenzungszeichen für die "verzögert aufzulösende" Variable) und darf daher nicht Inhalt der Telefonnummer sein.
Grüße
bastla
P.S.: Mit "sed" (Download zB hier) ginge das natürlich eleganter, etwa:
for /f "delims=" %%i in ('echo %TelNr%^|sed "s/./& /g"') do set "TelNrNeu=%%i"
set "TelNrNeu=%TelNrNeu:~0,-1%"