Как Endoro уже говорилось, что вам не нужно, чтобы избежать &
в пределах вашей спецификации delims.
Ваша ошибка, вероятно, связана с расширением "%Var%"
. Если ваше значение содержит оба кавычки и &
таким образом, что &
не цитируется после расширения, то это точно ошибка, которую вы получите. Помните, что кавычки в вашем заявлении могут быть отменены кавычками в пределах значения.
Вы могли бы решить эту проблему, используя замедленного расширение
setlocal enableDelayedExpansion
FOR /F "tokens=1,2 delims=&" %%A IN ("!Var!") DO (...
Но если ваше значение также содержит !
, то вам нужно отключить отложенное расширение, прежде чем вы расширить ваше переменные, в противном случае расширенных значения будут поврежден.
setlocal enableDelayedExpansion
FOR /F "tokens=1,2 delims=&" %%A IN ("!Var!") DO (
endlocal
...
)
Ошибка не указана в коде, который вы указали. Этот тест работает «TO/F» tokens = 1,2 delims =^& "%% A IN (" 123 & 456 ") Do echo %% A, %% B'. Но '^ &' определяет амперсанд и карету в качестве разделителей – jeb
@jeb - это вполне может быть в показанном коде, в зависимости от значения '% Var%'. – dbenham
Вы должны принять ответ, который решил вашу проблему. – foxidrive