案件

案件

案件

我正在使用部署软件产品工作量在 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"'.

问题

在无谓地搜索了 1 个半小时寻找神秘错误代码 2 之后,我开始相信要么是我与 Google 的关系出了问题,要么是真的没有针对该错误的文档。官方手册也让我失明了。

我试图stderr将该 Wpkg 命令转储到文本文件,但该文件尚未创建,这表明无法stderr转储。

也许第二双或第三双眼睛能帮助我找到问题的根源?

答案1

显然,错误 2 不是由命令返回的sed,而是由 Wpkg 无法找到%BASH%\sed.exe文件返回的:)

相关内容