2016-02-25 3 views
0

У меня есть эти переменные окружения: OUTPUT_FOR_TEST1, OUTPUT_FOR_TEST2, OUTPUT_FOR_TEST3 и т.д. Кроме того, эти переменные динамически построены в пакетном сценарии в основном путем добавления OUTPUT_FOR_ с TEST1, TEST2, TEST3, потому что я не знаю, впереди какие TEST1, TEST2, TEST3 ,Windows: переменные среды печати с подстановочным знаком?

В конце моего командного файла я хочу повторить эти переменные. Но поскольку эти переменные динамически создаются, как я могу их распечатать? Могу ли я использовать wild card like: echo %OUTPUT_FOR_*%, я так не думаю. Какие-либо предложения?

Я знаю, что оболочка питания может это сделать, но я предпочитаю придерживаться только пакетного решения, если оно существует.

Кроме того, чтобы дать понять: я хочу, чтобы напечатать только значения не все переменное окружение описания как OUTPUT_FOR_TEST1 = TEST1_RESULT

Может быть, я могу использовать set OUTPUT_FOR_ >> temp.txt, разобрать temp.txt, чтобы получить значение, но это больше работы.

ответ

1
set output_for 

это напечатает все переменные, имена которых начинаются с output_for. Затем вы можете использовать (из командной строки):

for /f "tokens=2* delims==" %# in ('set output_for') do @echo %# 

от партии:

for /f "tokens=2* delims==" %%# in ('set output_for') do @echo %%# 

или

(for /f "tokens=2* delims==" %%# in ('set output_for') do @echo %%#)>>output 
+1

набор output_for напечатает 'OUTPUT_FOR_TEST1 = TEST1_RESULT', я хочу только значения, которые почему я хотел использовать echo% OUTPUT_FOR _... – SomeDude

+0

@svasa - я обновил свой ответ – npocmaka

+0

Спасибо, будет ли он работать, если у меня есть значение «=» в переменной среды? – SomeDude

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