Wie die meisten String-Verarbeitung im Batch, die FOR /F
Befehl ermöglicht es Ihnen, dies zu tun, mit der Verwendung des delims
Argument.
for /f "delims=_" %%a in ("john_1") do set "name=%%a"
Nun ist der gewünschte Teil in der %name%
Variable.
Normalerweise haben Sie die Zeichenfolge in einer Variablen zu analysieren und nicht Quelle, obwohl. Um das oben genannte mit einer Variablen auszuführen, können Sie echo
die Variable verwenden.
set sz=John_1
for /f "delims=_" %%a in ('echo %sz%') do set "name=%%a"
Schließlich, wenn Sie aus irgendeinem Grund den zweiten Teil des Strings erhalten möchten, können FOR
eine andere Variable zuweisen, es zu halten, indem das tokens=
Argument.
set sz=John_1
for /f "tokens=1,2 delims=_" %%a in ('echo %sz%') do (set "name=%%a" & set "number=%%b")
FOR
ist eine der mächtigsten Befehle in der Batch-Sprache. Führen Sie help for
aus, um die vollständige Liste der verfügbaren Optionen anzuzeigen.
Sie brauchen etwas wie '" tokens = 1, * '" um die zweite Variable '%% b' – Stephan
zu verwenden, wie @Stephan suggeriert, würde ich' 1, * 'anstelle von' 1,2', also die zweite Der Teil wird nicht aufgeteilt, wenn er einen anderen Unterstrich enthält –