1.2k Aufrufe
Gefragt in Windows 7 von
Weiß jemand einen Befehl oder Trick, wie man mit einer CMD-Datei einen String in die einzelnen Buchstaben aufteilt?

Das brauche ich immer wieder mal.

2 Antworten

0 Punkte
Beantwortet von ericmarch Experte (4.6k Punkte)
Jein. :-)

Hier mal einfache Beispiele die ich in Batchdateien (CMD ist ja letzlich dasselbe) einsetze um mit unterschiedlicher Darstellung des Systemdatums umzugehen:
(A) Setzt in Abhängigkeit des lokalen Datumsformats Jahr, Monat, Tag auf die richtigen Werte.
if %date:~2,1% == . goto TMJ
::JJJJ-MM-TT
set Jahr=%date:~0,4%
set Monat=%date:~5,2%
set Tag=%date:~8,2%
goto weiter
:TMJ
::TT.MM.JJJJ
set Jahr=%date:~6,4%
set Monat=%date:~3,2%
set Tag=%date:~0,2%
(B)schneidet die mit Komma abgetrennten Sekunden samt desselben ab.
set Zeit=%time:~0,8%
(C) Systemunsinn mit TIME ohen führende Stunden-Null gemäß Systemeinstellung (und IF muss so geschrieben werden, Dank ans Leerzeichen!)
set HHZ=%time:~0,1%
set HHE=%time:~1,1%
if "%HHZ%"==" " (
set HHZ=0
)

Leztlich ist aber der zentrale Punkt der, dass du nur statisch schneiden kannst. Einfach mal so eine Länge zu ermitteln oder herauszupuzzeln wo eine bestimmte Textstelle jeweils anfängt wäre theoretisch machbar, aber doch für den Erfolg wohl übertrieben.

Was genau schwebt dir denn letzten Endes vor?

Eric March
0 Punkte
Beantwortet von
Hallo Eric,
danke, hab in einem anderen Forum die Lösung bekommen:

echo off &setlocal
set "string=Hello World!"

setlocal EnableDelayedExpansion
set /a "n=0"
:loop
set "letter=!string:~%n%,1!"
if "!letter!" neq "" (
echo(!letter!
set /a "n+=1"
goto loop
)
endlocal

pause

(Danke an Batchler vom chip-Forum!)
...