Назад | Перейти на главную страницу

SED возвращает ошибку 2 при запуске Wpkg

случай

Я развертываю программный продукт, используя Wpkg над рабочими станциями Windows. Мне нужно отключить ошибочное автоматическое обновление продукта, и лучшим решением в этом случае является изменение одного файла конфигурации с помощью следующего регулярного выражения: s/<value>.*<\/value>/<value>file:\\\\<\/value>/g

Проблема

Для выполнения описанной задачи я использую SED:

%BASH%\sed "s/<value>.*<\/value>/<value>file:\\\\<\/value>/g" "MyApp.config" > "MyApp.config.tmp"`

Когда я делаю это из командной строки, это работает.

Но как только я вставляю его в Wpkg (<> сбежал из-за XML ограничения):

<install cmd='%BASH%\sed "s/&lt;value&gt;.*&lt;\/value&gt;/&lt;value&gt;file:\\\\&lt;\/value&gt;/g" "%PKG_DESTINATION%\MyApp.config" &gt; "%PKG_DESTINATION%\MyApp.config.tmp"' />

... он терпит неудачу, не создает новых файлов и ... возвращает загадочный код ошибки 2:

Exit code returned non-successful value (2) on command '%BASH%\sed "s/<value>.*<
\/value>/<value>file:\\\\<\/value>/g" "%PKG_DESTINATION%\MyApp.config" > "%PKG_D
ESTINATION%\MyApp.config.tmp"'.

Вопрос

После полутора бессмысленных поисков этого загадочного кода ошибки 2 я начинаю верить, что либо во взаимоотношениях между мной и Google что-то не так, либо действительно нет документации по этой ошибке. Официальное руководство также оставил меня слепым.

Я пытался сбросить stderr этой команды Wpkg в текстовый файл, но файл не создается, что говорит об отсутствии stderr сбросить.

Может, вторая или третья пара глаз поможет мне найти источник проблемы?

Судя по всему, ошибку 2 вернул не sed команда, но Wpkg не может найти %BASH%\sed.exe файл :)