There are no real lists or arrays in CMD. However, if I've understood your question correctly, you are trying to do something like this:
concat.bat 123 456 789
and want the output to be 123456789. If this is the case, SHIFT is the magic command you are looking for. This should do it:
@ECHO OFF
SET concatString=
:LOOP
IF [%1]==[] GOTO ENDLOOP
SET concatString=%concatString%%1
SHIFT
GOTO LOOP
:ENDLOOP
ECHO %concatString%
PAUSE
When you pass parameters to a bat file via command line, they are accessible via %1, %2, %3 and so in. This means for concat.bat a b c that %1 is a, %2 is b and %3 is c. The only problem is that we might not know how many parameters there will be and you want your script to work with only one parameter as well as with 100 of them. At this point SHIFT is saving the day.
SHIFT does one simple thing. It moves the index of the parameters to the right, so the "old" %1 disappears, %2 becomes %1, %3 becomes %2 and so on. We just keep on looping until the last passed parameter becomes %1. After another shift there is no value left which can be assigned to %1 so [%1]==[] becomes true and we jump out of the loop.