2013-12-11 6 views
0

В пакетном скрипте, над которым я сейчас работаю, я столкнулся с некоторой проблемой. Я хочу, чтобы переменная была как сама, но после нее следует знак процента, буква, число из цикла 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%

Где мой код не соответствует действительности? Похоже, что он должен дать мне мой желаемый результат, но довольно четко, это не так.

Благодаря передовой,

ответ

0

Попробуйте это:

@echo off 
setlocal EnableDelayedExpansion 

set value1=1 
set value2=10 
set variable1= 
for /l %%a in (!value1!,1,!value2!) do (
    set percent=%% 
    set variable1=!variable1!!percent!b%%a!percent! 
) 
echo !variable1! 

Вы должны будете добавить setlocal EnableDelayedExpansion, как это будет помогает expand the variable at execution time rather than at parse time.

+0

Работает как очарование, большое спасибо. Однако, для моего собственного любопытства, использует! в качестве замены% скажите, чтобы это рассматривалось с помощью setlocal'd 'EnableDelayedExpansion'? – Destrotant

+0

Рад помочь: D – Dale

+0

@Destrotant Да вы правы :) – Dale

Смежные вопросы