У меня есть пакетный script с несколькими аргументами. Я читаю общее количество их, а затем запускаю цикл for следующим образом:
@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 )
Теперь я хочу использовать текущую переменную (x
или counter
) для доступа к входным аргументам. Я думаю aobut что-то вроде этого:
REM Access to %1
echo %(!counter!)
В идеальном мире эта строка должна распечатать мой первый аргумент командной строки, но, очевидно, это не так. Я знаю, что я делаю что-то не так с оператором %
, но есть ли у меня доступ к таким аргументам?
//edit: просто чтобы все было ясно - проблема в том, что %(!counter!)
предоставляет мне значение переменной counter
. Значение для counter=2
дает мне 2
, а не содержание %2
.