2016-12-31 2 views
-4

У меня есть небольшая проблема в моем коде,
если яКак решить этот пакетный глюк?

set ghot=1  

и

set fo1=text 

и попробовать вторя

echo %fo%ghot%%  

, как это, он приходит как

%fo1%  

вместо текста

+2

FYI люди, как правило, в большей степени готовы помочь, если вы форматируете свой пост правильно и писать, как взрослые. – jonrsharpe

+2

'echo! Fo% ghot%!' С включенным расширенным расширением. «Стандартный способ» для написания этого _array element_ - это 'set fo [1] = text' и' echo! Fo [% ghot%]! '. См. [Этот пост] (http://stackoverflow.com/questions/10166386/arrays-linked-lists-and-other-data-structures-in-cmd-exe-batch-script/10167990#10167990) – Aacini

ответ

2

Я неправильно понял, о чем вы спрашивали вначале. Добавление вызова к линии даст вам поведение, которое вы хотите.

call echo %%fo%ghot%%% 

Edited добавить дополнительный замыкающий% 's Он работает без них из командной строки, но не из пакетного файла.

+2

Вы должны затем двойные внешние знаки процента. – LotPings

2

Альтернативный метод с использованием отсроченного расширения:

@Echo Off 
SetLocal EnableDelayedExpansion 
Set "ghot=1" 
Set "fo1=text" 
Echo=!fo%ghot%! 
Timeout -1 
Смежные вопросы