Script em lote - Iterar por meio de argumentos

Eu tenho um script em lote com vários argumentos. Eu estou lendo a contagem total deles e, em seguida, execute um loop for como este:

@echo off
setlocal enabledelayedexpansion

set argCount=0
for %%x in (%*) do set /A argCount+=1
echo Number of processed arguments: %argCount%

set /a counter=0
for /l %%x in (1, 1, %argCount%) do (
set /a counter=!counter!+1 )

O que eu quero fazer agora é usar minha variável de execução (x oucounter) para acessar os argumentos de entrada. Estou pensando em algo como isto:

REM Access to %1 
echo %(!counter!)

Em um mundo ideal, essa linha deve imprimir meu primeiro argumento de linha de comando, mas obviamente não. Eu sei que estou fazendo algo errado com o% operador, mas existe de qualquer maneira eu poderia acessar meus argumentos como este?

// edit: Apenas para esclarecer as coisas - o problema é que%(!counter!) me fornece o valor da variávelcounter. Significado paracounter=2 isso me dá2 e não o conteúdo de%2.

questionAnswers(6)

yourAnswerToTheQuestion