@AirFlare

Как правильно экранировать строку?

Приветствую! Мучаюсь уже второй час... Как правильно экранировать содержимое переменной LINE?
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

)
  • Вопрос задан
  • 147 просмотров
Решения вопроса 1
wisgest
@wisgest
Не ИТ-специалист
В общем случае вопрос не такой уж простой.
Первоначальный ответ без учёта того, что команды в скобках
В данном случае можете заменить | на ^^^|:
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

)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы