Я получаю странную ошибку в моей пакетной программе. Я думаю, что проблема заключается в том, чтобы включить замедленное расширение, но исправление, которое я применяю, не работает. Это мой код:включить задержку расширения не работает
setlocal ENABLEDELAYEDEXPANSION
for /l %%x in (1, 1, 3) do (
set ff=Firefox_45_0.0_%%x
echo %%x
firefox.exe -CreateProfile "%ff% %homedrive%%homepath%\Desktop\Firefoxes\Profiles\Firefox_45_0.0_%%x"
)
ff не имеет значения, хотя я использовал задержанное расширение. Что может быть исправить?
EDIT: команда напечатана в консоль (я не использую @ECHO от)
C:\Users\Home2\Desktop\Firefoxes\Versions\Firefox_45_0.0>(
set ff=Firefox_45_0.0_1
echo 1
firefox.exe -CreateProfile "!ff! C:\Users\Home2\Desktop\Firefoxes\Profiles\Firefox_45_0.0_1"
)
Что такое смешное, что он на самом деле работает, как и ожидалось, хотя он печатает и далее! в консоли.
вы только * включаете * задерживаете расширение, но не * используете * его. Отложенные переменные ссылаются на '! Var!' Вместо '% var%'. – Stephan
используя! Ff! просто печатает! ff !. Это потому, что моя команда использует кавычки? Как вы используете! когда команда требует кавычек? – brumbrum
, используя ваш код, просто замена '% ff%' на '! Ff!' Отлично подходит для меня. Если он показывает '! Ff!' Буквально, это должно быть подсказкой, вы не «setlocal enabledelayedexpansion». Проверьте текущий код. – Stephan