elephantman

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
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

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

bastla
bastla 08.12.2007 um 21:10:12 Uhr
Goto Top
Hallo Elephantman und willkommen im Forum!

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
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:
for /f "delims=" %%i in ('echo %TelNr%^|sed "s/./& /g"') do set "TelNrNeu=%%i"  
set "TelNrNeu=%TelNrNeu:~0,-1%"  
Elephantman
Elephantman 08.12.2007 um 22:30:52 Uhr
Goto Top
Servus bastla,

na super! Auf so was wäre ich ja in 100 Jahren nicht gekommen^^
Habe mich für die sed Lösung entschieden, ist a kürzer und hat sofort funktioniert.

Vielen, Vielen Dank!

Gruß
Christian