CMD/BAT - [решено] В каких ОС по-умолчанию отключен режим расширенной обработки команд

Ответить
Аватара пользователя
Dragokas

CMD/BAT - [решено] В каких ОС по-умолчанию отключен режим расширенной обработки команд

Сообщение Dragokas »

Расскажите, пожалуйста:



1) В каких ОС по-умолчанию отключен режим



Код:

Код: Выделить всё

SetLocal EnableExtensions

2) В каких случаях, ОС, такой режим вообще не доступен/заблокирован?
Аватара пользователя
Iska

Re: CMD/BAT - [решено] В каких ОС по-умолчанию отключен режим расширенной обработки команд

Сообщение Iska »

Лучше скажите, какова Ваша цель. Ибо найти нынче такие ОС в рабочем состоянии весьма проблематично.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] В каких ОС по-умолчанию отключен режим расширенной обработки команд

Сообщение Iska »

Например, пишу я код какому-нибудь новичку. Он говорит - не работает. Кто его знает почему.

Оказывается, у него система Win 7 x32, и по какой то причине этот режим отключен.



Преднамеренно или нет я не знаю. Вот и хочу узнать по каким еще признакам можно определить.



Нагуглил такой ключ для установки этого режима принудительно:


Цитата:



Полностью отключить или включить расширенную обработку на данном компьютере или для конкретного пользователя можно в реестре, в соответствующих нужному контексту разделах [HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Command Processor] и [HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor].



Параметр "EnableExtensions"=dword:00000001 в этих разделах включает расширения, а "EnableExtensions"=dword:00000000 — отключает, при этом параметры пользователя имеют приоритет над параметрами компьютера



Но полной уверенности нет, что это работает.



Теперь конечно взял за привычку, если даю код основанный на For с ключами ВСЕГДА пишу:



Код:

Код: Выделить всё

SetLocal EnableExtensions

чтобы не возникало лишних ненужных вопросов.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] В каких ОС по-умолчанию отключен режим расширенной обработки команд

Сообщение Iska »

Цитата Diskretor:



Нагуглил такой ключ для установки этого режима принудительно:
CMD/BAT - [решено] В каких ОС по-умолчанию отключен режим расширенной обработки команд




Второе — задание параметра в самом интерпретаторе команд:


читать дальше »



Цитата cmd.exe /?:



/E:ON Разрешение расширений команд (см. ниже)

/E:OFF Запрет расширений команд (см. ниже)



/V:ON Разрешение отложенного расширения переменных среды с применением

символа '!' в качестве разделителя. Например, /V:ON разрешает

использовать !var! в качестве расширения переменной var во время

выполнения. Синтаксис var служит для расширения переменных

при вводе, что приводит к совсем другим результатам внутри

цикла FOR.

/V:OFF Запрет отложенного расширения переменных среды.








Цитата Diskretor:



Но полной уверенности нет, что это работает.
CMD/BAT - [решено] В каких ОС по-умолчанию отключен режим расширенной обработки команд




Это работает, будьте уверены. Приоритет у HKCU.




Цитата Diskretor:



Теперь конечно взял за привычку, если даю код основанный на For с ключами ВСЕГДА пишу:



Код:

Код: Выделить всё

SetLocal EnableExtensions

чтобы не возникало лишних ненужных вопросов.
CMD/BAT - [решено] В каких ОС по-умолчанию отключен режим расширенной обработки команд




Я по той же причине использую:



Код:

Код: Выделить всё

setlocal enableextensions enabledelayedexpansion

P.S. У меня сразу в Far Manager'е задан такой шаблон для пакетных файлов:


читать дальше »




Код:

Код: Выделить всё

@echo off
setlocal enableextensions enabledelayedexpansion

endlocal
exit /b 0
Ответить

Вернуться в «Скриптовые языки администрирования Windows»