在C#中传递命令行参数

我正在尝试将命令行参数传递给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"

问题是我可以正确获取第一个和第二个参数,但是最后一个是as 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的一些小动作可以从Jon

Galloway的博客中获得一些见识,其基本规则是:

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

以上是 在C#中传递命令行参数 的全部内容, 来源链接: utcz.com/qa/430989.html

回到顶部