2016-08-06 5 views
0

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

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" 
    ) 

Что такое смешное, что он на самом деле работает, как и ожидалось, хотя он печатает и далее! в консоли.

+3

вы только * включаете * задерживаете расширение, но не * используете * его. Отложенные переменные ссылаются на '! Var!' Вместо '% var%'. – Stephan

+0

используя! Ff! просто печатает! ff !. Это потому, что моя команда использует кавычки? Как вы используете! когда команда требует кавычек? – brumbrum

+1

, используя ваш код, просто замена '% ff%' на '! Ff!' Отлично подходит для меня. Если он показывает '! Ff!' Буквально, это должно быть подсказкой, вы не «setlocal enabledelayedexpansion». Проверьте текущий код. – Stephan

ответ

1

! Ff! исправляет его, так как замедленное расширение использует восклицательные знаки вместо знаков процента.
Отложенный режим расширения не меняет процентное расширение, он добавляет новый и лучший способ для расширения

+0

используя! Ff! просто печатает! ff !. Это потому, что моя команда использует кавычки? – brumbrum

Смежные вопросы