返回可执行文件名的 Winform 命令行参数



我正在尝试将命令行参数传递给我拥有的winform 但是无论我指定什么作为参数,它都会返回winform 文件名和路径。

private void Form1_Load(object sender, EventArgs e)
{
    MessageBox.Show(Environment.GetCommandLineArgs()[0]);
}

消息框将显示C:AppMyApp.exe,即使在cmd上我键入C:AppMyApp.exe param1,它应该输出param1

你没有做错任何事。

命令行上的第一个参数始终是可执行文件名称。

若要获取传递给可执行文件的第一个参数,请获取下一个参数(假设存在(:

Environment.GetCommandLineArgs()[1]

第一个条目(索引 0(始终是可执行文件的路径。您需要访问索引 1。试试这个:

private void Form1_Load(object sender, EventArgs e)
{
    var arguments = Environment.GetCommandLineArgs();
    if (arguments.Length > 1) {
        MessageBox.Show(arguments[1]);
    }
}
Environment.GetCommandLineArgs()[0]

返回可执行文件的路径。

Environment.GetCommandLineArgs()[1]
... 
Environment.GetCommandLineArgs()[n]

将返回n个连续参数。

Environment.GetCommandLineArgs()返回参数数组。

第一个命令行参数始终是程序的路径。
Environment.GetCommandLineArgs()[1]将是"param1".

第一个参数将始终是可执行文件的名称。 参数从 1 开始。所以 Environment.GetCommandLineArgs(([1] 将给出第一个参数。

或者,我最喜欢的...

foreach (var arg in Environment.GetCommandLineArgs().Skip(1))
{
    // process each arg in turn.
}

最新更新