В пакетном скрипте, над которым я сейчас работаю, я столкнулся с некоторой проблемой. Я хочу, чтобы переменная была как сама, но после нее следует знак процента, буква, число из цикла for /l (#,#,#)
, а затем еще один знак процента. Мой код в настоящее время выглядит следующим образом;Пакет - заданная переменная ошибка; Переменная (%) (строка) (%% а) (%)?
set value1=1
set value2=10
for /l %%a in (%value1%,1,%value2%) do (
set variable1=%variable1%%b%%a%
)
Это не дает мне значения для% variable1% вообще, даже после цикла 10 раз. Я попытался добавить «variable1 =» (без апострофов) вверх, однако это дало мне тот же результат. После поиска, я решил, что я должен попытаться скомпрометировать%, которые находятся перед «b», и после «a» - используя% перед ними - и мой код оказался таким:
set value1=1
set value2=10
set variable1=
for /l %%a in (%value1%,1,%value2%) do (
set variable1=%variable1%%b%%a%
)
Это ближайший я получил, однако% variable1% изменит значение '% b1%', то '% b2%', то '% b3%' и т.д. Вместо черепицей их рядом друг с другом.
Моим желаемым результатом было бы, к концу цикла,% variable1% иметь значение; %b1%%b2%%b3%%b4%%b5%%b6%%b7%%b8%%b9%%b10%
Где мой код не соответствует действительности? Похоже, что он должен дать мне мой желаемый результат, но довольно четко, это не так.
Благодаря передовой,
Работает как очарование, большое спасибо. Однако, для моего собственного любопытства, использует! в качестве замены% скажите, чтобы это рассматривалось с помощью setlocal'd 'EnableDelayedExpansion'? – Destrotant
Рад помочь: D – Dale
@Destrotant Да вы правы :) – Dale