Dadurch wird ein Array aufgefüllt und gedruckt
Sie können Namen1 Namen2 Namen3 anstelle von Namen [1] Namen [2] Namen [3] verwenden, indem Sie Namen schreiben! I! anstelle von Namen [! i!]. Es erzeugt das Array durch Generieren von Variablennamen. Es gibt keine Array-Struktur im Stapel. Aber es ist so ordentlich wie jede Array-Struktur, und das Ausfüllen oder Drucken sieht genauso aus, wie man ein Array in einer richtigen Sprache ausfüllen oder drucken würde (die tatsächlich die Array-Struktur hat!)
@echo off setlocal enabledelayedexpansion enableextensions set i=-1 for %%f in (bob, tom, joseph) do ( set /a i=!i!+1 set names[!i!]=%%f ) set lastindex=!i! for /L %%f in (0,1,!lastindex!) do ( echo !names[%%f]! )
die Ausgabe-
c:\blah>a bob tom joseph c:\blah>
Einige erklärung-
Das setlocal enabledelayedexpansion enableextensions
mit der! Var! Statt% var% ist erforderlich, um ein ungerades Verhalten zu verhindern, sodass sich Variablen innerhalb eines FOR oder eines IF richtig verhalten. Bei Batch-Dateien ist das eine Kuriosität. Sehen Sie, set /?
wo das weiter erwähnt wird.
Dies ist, was das Array ausfüllt, und es ist für jeden, der sich mit Arrays auskennt, ziemlich direkt. Sie könnten auch tun, names[0]=bob
names[1]=tom
names[2]=joseph
obwohl eine der Schönheiten eines Arrays die Fähigkeit ist, ein Array mit einer Schleife zu füllen, was ich hier getan habe.
for %%f in (bob, tom, joseph) do ( set /a i=!i!+1 set names[!i!]=%%f ) set lastindex=!i!
Dies zeigt das Array an. %% f Wenn Sie das Echo anzeigen, wird der Wert von 0 bis zum letzten Index des Arrays in Schritten von 1 verschoben. Dadurch werden Namen [0] Namen [1] Namen [2] gedruckt.
for /L %%f in (0,1,!lastindex!) do ( echo !names[%%f]! )