Войти

Показать полную графическую версию : [решено] В каких ОС по-умолчанию отключен режим расширенной обработки команд


Dragokas
26-03-2013, 03:08
Расскажите, пожалуйста:

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

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

Iska
26-03-2013, 06:16
Лучше скажите, какова Ваша цель. Ибо найти нынче такие ОС в рабочем состоянии весьма проблематично.

Dragokas
28-03-2013, 20:23
Например, пишу я код какому-нибудь новичку. Он говорит - не работает. Кто его знает почему.
Оказывается, у него система 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
28-03-2013, 21:29
Нагуглил такой ключ для установки этого режима принудительно: »
Второе — задание параметра в самом интерпретаторе команд:
/E:ON Разрешение расширений команд (см. ниже)
/E:OFF Запрет расширений команд (см. ниже)

/V:ON Разрешение отложенного расширения переменных среды с применением
символа '!' в качестве разделителя. Например, /V:ON разрешает
использовать !var! в качестве расширения переменной var во время
выполнения. Синтаксис var служит для расширения переменных
при вводе, что приводит к совсем другим результатам внутри
цикла FOR.
/V:OFF Запрет отложенного расширения переменных среды.
Но полной уверенности нет, что это работает. »
Это работает, будьте уверены. Приоритет у HKCU.

Теперь конечно взял за привычку, если даю код основанный на For с ключами ВСЕГДА пишу:
SetLocal EnableExtensions
чтобы не возникало лишних ненужных вопросов. »
Я по той же причине использую:
setlocal enableextensions enabledelayedexpansion
P.S. У меня сразу в Far Manager'е задан такой шаблон для пакетных файлов:
@echo off
setlocal enableextensions enabledelayedexpansion

<курсор ввода>

endlocal
exit /b 0




© OSzone.net 2001-2012