Аргумент командной строки Winform, возвращающий исполняемое имя файла - PullRequest
6 голосов
/ 23 декабря 2011

Я пытаюсь передать аргумент командной строки в winform, которая у меня есть, но независимо от того, что я указываю в качестве параметра, он продолжает возвращать имя и путь winform.

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

В окне сообщения будет отображаться C:\App\MyApp.exe даже если в cmd я наберу C:\App\MyApp.exe param1, который должен вывести param1.

Ответы [ 6 ]

8 голосов
/ 23 декабря 2011

Вы не делаете ничего плохого.

Первый аргумент в командной строке всегда является именем исполняемого файла.

Чтобы получить первый аргумент, переданный в исполняемый файл, получите следующий параметр (при условии, что он существует):

Environment.GetCommandLineArgs()[1]
5 голосов
/ 23 декабря 2011

Первая запись (индекс 0) всегда является путем к исполняемому файлу.Вам нужен доступ к индексу 1. Попробуйте вместо этого:

private void Form1_Load(object sender, EventArgs e)
{
    var arguments = Environment.GetCommandLineArgs();
    if (arguments.Length > 1) {
        MessageBox.Show(arguments[1]);
    }
}
2 голосов
/ 23 декабря 2011
Environment.GetCommandLineArgs()[0]

возвращает путь к вашему исполняемому файлу.

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

вернет n последовательных параметров.

Environment.GetCommandLineArgs() возвращает массив параметров.

2 голосов
/ 23 декабря 2011

Первый аргумент командной строки - это всегда путь к программе.
Environment.GetCommandLineArgs()[1] будет "param1".

1 голос
/ 23 декабря 2011

Первым аргументом всегда будет имя исполняемого файла. параметры начинаются с 1. поэтому Environment.GetCommandLineArgs () [1] даст 1-й аргумент.

0 голосов
/ 22 марта 2013

Или мой любимый ...

foreach (var arg in Environment.GetCommandLineArgs().Skip(1))
{
    // process each arg in turn.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...