2015-01-17 5 views
0

У меня проблемы с запуском! Var! примеры, описанные здесь http://ss64.com/nt/delayedexpansion.htmlwindows cmd enabledelayedexpansion не работает

Вместо ожидаемого вывода содержимого переменной, как описано в примере, я получаю буквальный вывод «Bang V A R bang», любую идею?

C:\>Setlocal EnableDelayedExpansion 
C:\>Set _var=first 
C:\>Set _var=second& Echo %_var% !_var! 
first !_var! 

спасибо.

+1

Чтобы получить задерживается расширение в командной строке запустит 'cmd/v: on'. Вот команда для постоянной установки для текущего пользователя: 'reg add" HKCU \ Software \ Microsoft \ Command Processor "/ v DelayedExpansion/t REG_DWORD/d 1'. – eryksun

ответ

1

setlocal работает только в рамках командного сценария:

help setlocal 
2

Вы получаете неожиданный результат, потому что вы выдачи команд в командной строке. Создайте командный файл, поместив следующие команды в файл с расширением .bat, затем запустите пакетный файл.

@echo off 
Setlocal EnableDelayedExpansion 
Set _var=first 
Set _var=second& Echo %_var% !_var! 

Например, если я создал пакетный файл с именем delayedexp.bat с выше содержанием, я хотел бы видеть следующее, когда я запускаю его:

C:\Users\JDoe\Documents\>delayedexp 
first second