В общем случае вопрос не такой уж простой.
Первоначальный ответ без учёта того, что команды в скобкахВ данном случае можете заменить
| на
^^^|:
set LINE=block_image_update(map_partition("product_a"), package_extract_file("product.transfer.list"), "product.new.dat.br", "product.patch.dat") ^^^|^^^| abort("E2001: Failed to update product image.");
— экранируются
| для
set и ещё раз экранируются
| и уже
^ для
echo.
В данном случае можно использовать отложенное раскрытие переменных и экранировать
| и
):
setlocal enabledelayedexpansion
set s=1
if %s% == 1 (
set LINE=block_image_update(map_partition("product_a"^), package_extract_file("product.transfer.list"^), "product.new.dat.br", "product.patch.dat"^) ^|^| abort("E2001: Failed to update product image."^);
echo !LINE! >> file
)