Es gibt tatsächlich eine Paar von Möglichkeiten, dies zu tun, je nachdem, ob Sie nur die Zeichen verarbeiten müssen oder ob Sie müssen Speichern Sie sie für später, wie vorgeschlagen.
ich die erste Methode Vorderseite nach oben zeigen würde, da dies mein üblicher Anwendungsfall ist für Teile von Zeichenkette Verarbeitung (nur jedes Teil verarbeiten müssen dann wegwerfen. Das erste Bit ist nur Test-Code zu sehen, es in Aktion.
@setlocal enableextensions enabledelayedexpansion
@echo off
set name=Michael
call :procWithCb :callback !name!
endlocal
goto :eof
:callback
echo Character is %1
goto :eof
:procWithCb
set procWithCbStr=%2
:procWithCbLoop
if not "!procWithCbStr!"=="" (
call %1 !procWithCbStr:~0,1!
set procWithCbStr=!procWithCbStr:~1!
goto :procWithCbLoop
)
goto :eof
Sie werden sehen, dass der Haupt-Bit die Funktion procWithCb
aufruft, zu verarbeiten, sowohl eine Callback-Funktion und die Zeichenfolge bereitstellt. Es wird jedes Zeichen aus dem String wiederum extrahiert, und das an die Callback geben (was Sie beliebig komplex machen können), damit es so geht, wie es Ihnen gefällt:
Character is M
Character is i
Character is c
Character is h
Character is a
Character is e
Character is l
Die zweite Methode ist eher zu dem, was Sie gefragt haben, jedes Zeichen in einen Satz Variablennamen zu speichern, obwohl ich auch eine Zählvariable für Sie als auch für den Fall festgelegt haben Sie bereits Variablen dieser Form festgelegt. Das erste Bit ist mit Ausnahme identisch, dass es eine andere Verarbeitung Routing-Anrufe und gibt alle erstellten Variablen danach:
@setlocal enableextensions enabledelayedexpansion
@echo off
set name=Michael
call :procToVars !name!
set character_
endlocal
goto :eof
:procToVars
set procToVarsStr=%1
set pos=0
:procToVarsLoop
if not "%procToVarsStr%"=="" (
set /a "pos = pos + 1"
set character_count=!pos!
set character_!pos!=!procToVarsStr:~0,1!
set procToVarsStr=!procToVarsStr:~1!
goto :procToVarsLoop
)
goto :eof
Ausführen dieses Skript Sie zeigt die Ergebnisse:
character_1=M
character_2=i
character_3=c
character_4=h
character_5=a
character_6=e
character_7=l
character_count=7
Können Sie Code für mich schreiben? – SteveFest