我有一个应用程序应该可以在构建前和构建后事件处理方面帮助我的项目。我正在使用 ndesk.options 进行命令行参数解析。当我的项目路径包含空格时,这给了我奇怪的结果。我认为这是 ndesk.options 的错,但我想应该归咎于我自己的应用程序。我将我的应用程序称为构建后事件,如下所示:
build.exe --in="$(ProjectDir)" --out="c:\out\"
args[] 上的简单 foreach 显示以下内容:
--in=c:\my project" --out=c:\out"
发生的事情是每个参数中的最后一个 " 被视为已转义。因此,尾部的反斜杠被删除了。整个事情被视为单个参数。
现在我认为我只是简单地逃避第一个“也很聪明,就像这样:
build.exe --in=\"$(ProjectDir)" --out=\"c:\out\"
在这种情况下,生成的 args[] 如下所示:
--path="c:\my
project"
--out="c:\out"
参数中的尾部反斜杠仍然被吞下,第一个参数现在被拆分。
将此 args[] 传递给 ndesk.options 将产生错误的结果。
正确的命令行应该如何显示,以便正确的元素最终出现在正确的 args[] 插槽中?或者,应该如何解析带有或不带有 ndesk.options 的命令行参数?欢迎任何建议。
提前致谢