сталкиваются некоторые проблемы при попытке печати значений массива, как показано ниже:печати и присвоить массив значения другого переменный в пакетном файле
@echo off
setlocal EnableDelayedExpansion
set args=
set /A argc=0
SET /A argn=0
for %%a in (%*) do (
SET args[!argn!]=%%a
SET /A argn+=1
)
FOR %%q in (%*) DO (
echo !args[%argc%]! //not able to print the value
call echo %%args[!argc!]%% // this worked
if "%%q" == "--snap" (
set /A argc+=1
set SNAP=!args[%argc%]! //this didn't work
)
if "%%q" == "--source" (
set /A argc+=1
call SET "SOURCE=%%args[!argc!]%%" //this didn't work too
)
set /A argc+=1
)
Используя этот сегмент кода гравюр только первое значение массива, но другой метод использования для/l работает нормально. Как это исправить? Можно ли сохранить это значение массива в любой другой переменной? Если да, то как?
'for %% q in (% *) do ...' сколько параметров выводит ваш командный файл из командной строки ?. BTW 'set/a argc + = 1' является предпочтительным синтаксисом – elzooilogico
13 аргументов из командной строки. @elzooilogico – RRR
и как заполняется массив? Я не понимаю, как он заполнен? – elzooilogico