gpt4 book ai didi

c# - 在 C# 中传递命令行参数

转载 作者:IT王子 更新时间:2023-10-29 04:47:33 26 4
gpt4 key购买 nike

我正在尝试将命令行参数传递给 C# 应用程序,但我在传递类似这样的内容时遇到了问题

"C:\Documents and Settings\All Users\Start Menu\Programs\App name"

即使我将 "" 添加到参数中也是如此。

这是我的代码:

    public ObjectModel(String[] args)
{
if (args.Length == 0) return; //no command line arg.
//System.Windows.Forms.MessageBox.Show(args.Length.ToString());
//System.Windows.Forms.MessageBox.Show(args[0]);
//System.Windows.Forms.MessageBox.Show(args[1]);
//System.Windows.Forms.MessageBox.Show(args[2]);
//System.Windows.Forms.MessageBox.Show(args[3]);
if (args.Length == 3)
{
try
{
RemoveInstalledFolder(args[0]);
RemoveUserAccount(args[1]);
RemoveShortCutFolder(args[2]);
RemoveRegistryEntry();
}
catch (Exception e)
{
}
}
}

这是我要传递的内容:

C:\WINDOWS\Uninstaller.exe  "C:\Program Files\Application name\"  "username"  "C:\Documents and Settings\All Users\Start Menu\Programs\application name"

问题是我可以正确获取第一个和第二个参数,但最后一个参数为 C:\Documents

有什么帮助吗?

最佳答案

我刚刚进行了检查并验证了问题所在。这让我感到惊讶,但它是第一个参数中的最后一个\。

"C:\Program Files\Application name\" <== remove the last '\'

这需要更多解释,有人有想法吗?我倾向于称其为错误。


第 2 部分,我又进行了一些测试

"X:\\aa aa\\" "X:\\aa aa\" next

成为

X:\\aa aa\
X:\\aa aa" next

Google 的一点操作可以从 blog by Jon Galloway 中获得一些见解。 ,基本规则是:

  • 反斜杠是转义符
  • 总是转义引号
  • 仅在引号之前转义反斜杠。

关于c# - 在 C# 中传递命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/653563/

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