Странная проблема объема в .bat файле

Я думаю, что, возможно, ваши $ функции написаны неправильно, попробуйте

$(document).ready(function() {
  $('.termsLink').click(function() {
    $('#Terms-and-conditions').trigger('click');
  });

  $('.privacyLink').click(function() {
    $('#Privacy-policy').trigger('click');
  });
});
17
задан Herms 20 November 2008 в 15:16
поделиться

3 ответа

Вы сталкиваетесь с проблемой расширения статической переменной cmd. Переменная РЕЖИМА только оценена однажды. Вы видите это при исключении @echo от строки.

От набора/? документация:

Наконец, поддержка задержанного расширения переменной среды была добавлена. Эта поддержка всегда отключается по умолчанию, но может быть позволена/отключена через/V переключатель командной строки к CMD.EXE. Видеть CMD/?

Задержанное расширение переменной среды полезно для того, чтобы обходить ограничения текущего расширения, которое происходит, когда строка текста читается, не, когда это выполняется. Следующий пример демонстрирует проблему с непосредственным переменным расширением:

 set VAR=before
 if "%VAR%" == "before" (
     set VAR=after
     if "%VAR%" == "after" @echo If you see this, it worked
 )

никогда не отображал бы сообщение, так как %VAR % в ОБОИХ операторах IF заменяют, когда первый оператор IF читается, так как это логически включает тело, ЕСЛИ, который является составным оператором. Так, ЕСЛИ в составном операторе действительно соответствует "прежде", "после" которого никогда не будет равно. Точно так же следующий пример не будет работать как ожидалось:

set LIST=
for %i in (*) do set LIST=%LIST% %i
echo %LIST%

, в котором это НЕ создаст список файлов в текущем каталоге, но вместо этого просто установит переменную СПИСКА на последний найденный файл. Снова, это вызвано тем, что %LIST % расширен только однажды, когда оператор FOR читается, и в то время переменная СПИСКА пуста. Таким образом, фактическое ДЛЯ цикла, который мы выполняем:

for %i in (*) do set LIST= %i

, который просто сохраняет установку LIST в последний файл найденной.

Задержанное расширение переменной среды позволяет Вам использовать различный символ (восклицательный знак) для расширения переменных среды во время выполнения. Если задержанное переменное расширение включено, вышеупомянутые примеры могли бы быть записаны следующим образом для работы, как предназначено:

set VAR=before
if "%VAR%" == "before" (
    set VAR=after
    if "!VAR!" == "after" @echo If you see this, it worked
)

set LIST=
for %i in (*) do set LIST=!LIST! %i
echo %LIST%
26
ответ дан 30 November 2019 в 13:05
поделиться

Похож на чтение, и запись используют различные правила обзора.

при устранении этой строки

set MODE=FOOBAR

она будет работать как ожидалось. Таким образом, у Вас должен будет, вероятно, быть сложный ряд, если бы if/elses для заполнения переменных, как Вы хотели бы.

-2
ответ дан 30 November 2019 в 13:05
поделиться

setlocal EnableDelayedExpansion

включит флаг / v

2
ответ дан 30 November 2019 в 13:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: