gpt4 book ai didi

c# - Visual Studio 生成事件中的空格和反斜杠

转载 作者:行者123 更新时间:2023-11-30 13:42:38 26 4
gpt4 key购买 nike

我有一个应用程序可以在构建前和构建后事件处理方面帮助我的项目。我正在使用 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 的命令行参数?欢迎提出任何建议。

提前致谢

最佳答案

您是否尝试转义最后一个反斜杠?

build.exe --in="$(ProjectDir)\" --out="c:\out\\"

这可能只适用于 ProjectDir\ 结尾,它应该是 given .
这只是一个想法,但我没有尝试过

编辑:
我找到了一个 comment这建议省略尾随 "

关于c# - Visual Studio 生成事件中的空格和反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2504006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com