在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