gpt4 book ai didi

c# - 我能否以原始形式(例如包括引号)获取我的申请的论据?

转载 作者:行者123 更新时间:2023-11-30 13:17:06 25 4
gpt4 key购买 nike

我有一个 .Net 应用程序,它接受一堆命令行参数,处理其中的一些,并将其余的用作另一个应用程序的参数

例如

MyApp.exe foo1 App2.exe arg1 arg2 ...

MyApp.exe 是我的应用程序,foo1 是我的应用程序关心的参数。 App2.exe 是另一个应用程序,我的应用程序将以 arg1 arg2 等作为参数运行 App2。

目前我的应用程序只是使用类似这样的东西运行 App2.exe

Process.Start(args[1], String.Join("", args.Skip(2))。所以上面的命令将正确运行:App2.exe with arguments "arg1 arg2 "。然而,考虑这样的事情

MyApp.exe foo1 notepad.exe "C:\Program Files\readme.txt"

上面的代码不会识别引号,并且会使用参数 C:\Program Files\readme.txt(不带引号)运行 notepad.exe。我该如何解决这个问题?

最佳答案

Environment.CommandLine

会给你确切的命令行 - 你必须解析出你的应用程序的路径,但在其他方面就像一个魅力 - @idle_mind 早些时候提到过(有点)

编辑以将示例移动到答案中(因为人们显然仍在寻找这个答案)。请注意,在调试 vshost 时会稍微弄乱命令行。

#if DEBUG             
int bodgeLen = "\"vshost.\"".Length;
#else
int bodgeLen = "\"\"".Length;
#endif
string a = Environment.CommandLine.Substring(Assembly.GetExecutingAssembly().Location.Lengt‌​h+bodgeLen).Trim();

关于c# - 我能否以原始形式(例如包括引号)获取我的申请的论据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16453627/

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