Я развертываю программный продукт, используя 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/<value>.*<\/value>/<value>file:\\\\<\/value>/g" "%PKG_DESTINATION%\MyApp.config" > "%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
файл :)