Консольное приложение должно ждать параметры - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть консольное приложение, которое выглядит примерно так:

static void Main(string[] args)
{
   if(args.Length == 0)
   {
      //do something
   }
   else if(args.Length % 2 == 0)
   {
      //do something else
   }
}

Теперь, когда я собираю и запускаю свой файл .exe, он просто открывается на мгновение, чтобы запустить код, и закрывается.

Возможно ли, что .exe ждет от меня ввода параметров после его запуска?

Я знаю, что могу открыть cmd, записать каталог в мой файл и записать мои параметры (C: \ Example\ MyExe.exe -Parameter1).Но так ли это?

Ответы [ 6 ]

4 голосов
/ 02 апреля 2019

Возможно ли, что .exe ждет от меня ввода параметров после его запуска?

Он не будет ждать args, так как они должны быть переданы при запуске приложения, но вы можете реализовать свое приложение, чтобы принимать пользовательский ввод, используя Console.ReadLine. Вот пример:

static void Main(string[] args)
{
    if (args.Length == 0)
    {
        List<string> arguments = new List<string>();
        do
        {
            Console.WriteLine("Input argument and press <ENTER>: ");
            string argument = Console.ReadLine();
            if (string.IsNullOrEmpty(argument))
                break;
            arguments.Add(argument);
        } while (true);

        Console.WriteLine("continue...");
    }
    else if (args.Length % 2 == 0)
    {
        //do something else
    }
}
1 голос
/ 02 апреля 2019

Если вы добавите строку:

Console.ReadLine();

, консоль останется открытой до нажатия клавиши.

Таким образом, ваш код должен быть:

static void Main(string[] args)
{
   if(args.Length == 0)
   {
      //do something
   }
   else if(args.Length % 2 == 0)
   {
      //do something else
   }
   Console.ReadLine();
}

Чтобы передать некоторые параметры через Visual Studio: щелкните правой кнопкой мыши проект -> Свойства -> Отладка -> Аргументы командной строки

1 голос
/ 02 апреля 2019
  1. Щелкните правой кнопкой мыши проект по умолчанию
  2. Выберите «Свойства»
  3. Нажмите на вкладку «Отладка» слева.
  4. Введите аргументы командной строки в «Аргументы командной строки».
  5. Сохраните обновленные свойства и запустите проект.
1 голос
/ 02 апреля 2019

Да, это единственный способ, потому что параметры передаются при запуске приложения.

Вы можете добавить параметры отладки в Visual Studio, если хотите отладить его. Для этого щелкните правой кнопкой мыши на проекте и откройте настройки проекта. Затем вы можете добавить их в раздел отладки.

Посмотрите на Передача параметров командной строки с помощью Visual Studio C # для получения дополнительной информации.

Дополнительная информация: если вы хотите, чтобы ваше приложение оставалось открытым, пока пользователь не нажмет клавишу, которую вы можете использовать Console.Read(); для этого.

1 голос
/ 02 апреля 2019

Если ваше приложение открывается и сразу же закрывается, это потому, что не существует метода «блокировки». Вы можете добавить Console.Read(); в конце, который будет ждать нажатия клавиши.

В примере:

static void Main(string[] args)
{
   if(args.Length == 0)
   {
      //do something
   }
   else if(args.Length % 2 == 0)
   {
      //do something else
   }

   Console.WriteLine("Press any key to exit the application.");
   Console.Read();
}

Для передачи параметров я привык использовать cmd и передавать напрямую аргументы в exe, но это можно сделать в VS

Щелкните правой кнопкой мыши по проекту -> Свойства -> Отладка -> Аргументы командной строки

0 голосов
/ 02 апреля 2019

Записать Console.Readkey () после вашего else if () {} finish ...

Консоль не закроется, пока вы не нажмете Enter

...