2015-12-10 2 views
0

Вот упрощенная версия того, что мне нужно ... если я установить переменную и установить его как мой проворный, как это:Как изменить PROMPT для включения переменных?

set myvar=AAA 
PROMPT %myvar%$g 

дает мне:

AAA> 

, но затем, Я хочу изменить свою переменную и, следовательно, запрос, так:

set myvar=BBB 

следует производить как мой ПРОМТ:

BBB> 

, но он по-прежнему

AAA> 

Как сделать динамический?

+2

установить подсказку снова. установка подсказки расширяет/заменяет любые переменные, а затем переменные GONE. оболочка не помнит, какие переменные вы использовали или постоянно проверяете, были ли они изменены. –

+0

Причина этого заключается в том, чтобы всегда отображать определенные важные переменные, если они программным образом изменены каким-то сценарием ... – Vital

ответ

1

Невозможно связаться с сделать это; однако вы можете легко получить эквивалентный результат, если вы напишете свою собственную «оболочку». Например:

@echo off 
setlocal 

:loop 
    echo/ 
    set "command=" 
    set /P "command=%myvar%>" 
    call %command% 
goto loop 

Выходной пример:

>set myvar=AAA 

AAA>echo %time% 
14:42:12.32 

AAA>set myvar=BBB 

BBB>echo %date% 
10/12/2015 

BBB>exit 
+0

hmm ... интересный подход, это означает, что каждая выполняемая мной команда должна пройти через «вызов% command%», (это может сработать), также Ctrl + c отменяет это окно, во всяком случае, чтобы избежать этого, я хотел бы использовать его в качестве обычного окна команд. – Vital

+1

Как я уже сказал, нет стандартного способа сделать это. Вы можете отменить команду с помощью Ctrl + C и не отменить этот пакетный файл/окно, если вы измените 'call% command%' на 'cmd/C% command%' – Aacini