我编写了一个Windows应用程序,它可以接受一些命令行参数,并可以作为计划任务从命令行运行。这一切都运行正常,但我试图给用户一些反馈,如果他们从你启动它。
我已经使用了 Console Output from a Windows Forms Application 中描述的信息,并且在命令行上有一些输出,但是当应用程序完成时,它不会回退到命令提示符,除非你按Enter键。它只是坐在那里等待。
我错过了什么?
答案 0 :(得分:0)
Console.WriteLine("Press enter to exit")
Console.ReadLine()
程序结束前。
答案 1 :(得分:0)
您需要在执行后以某种方式暂停它,否则窗口将快速退出。有几种方法可以暂停,但在这种情况下,您希望能够将其作为计划任务(没有暂停)和用户(暂停)执行。
最简单的方法是创建用户运行的.BAT文件。例如:
@echo off start /B /wait yourapp.exe pause
start命令有几个您可能想要查看的参数。输入start /?在命令行上。
另一种方法是在应用程序中使用Console.ReadLine();
或System.Threading.Tread.Sleep(1000 * 10);
之类的暂停。您可以使用命令行参数来调节它,例如:
static void Main(string[] args)
{
// DoSomeStuff
// Pause if not "nopause" is specified.
if (args.Count == 0 || args[0] == "nopause")
{
Console.Write("Press any key to continue.");
Console.ReadLine();
}
}
(样本肯定可以写得更好,只是给你一个大概的想法)
使用上面的示例,计划任务可以使用nopause param调用.exe,如:myapp.exe nopause
。