在控制台应用程序中处理后退出命令提示符

时间:2016-08-13 06:59:34

标签: c#

我有以下命令从调度程序运行任务,调度程序是一个控制台应用程序:

  ProcessStartInfo psi = new ProcessStartInfo();
            psi.FileName = "cmd.exe";
            psi.Arguments = string.Format("/K SCHTASKS.EXE /Change /TN \"{0}\" /DISABLE", this.FullTaskName);
            Process.Start(psi);

现在我想在执行任务后关闭命令提示符。我试过了,

  Environment.Exit(0);

但是这个termiantes进程并没有关闭打开的命令提示符。我需要在运行任务后退出命令提示符。

2 个答案:

答案 0 :(得分:1)

假设您使用SCHTASKS.EXE进行网络调用cmd.exe,您可以执行以下操作

ProcessStartInfo psi = new ProcessStartInfo();
        psi.FileName = "cmd.exe";
        psi.Arguments = string.Format("/K SCHTASKS.EXE /Change /TN \"{0}\" /DISABLE & exit", this.FullTaskName);
        Process.Start(psi);

请注意添加& exit&允许您连接多个要按顺序执行的命令。

答案 1 :(得分:1)

当您使用/k开关时,您要求命令提示符窗口保持打开状态。请改用/c

ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "cmd.exe";
psi.Arguments = string.Format("/C SCHTASKS.EXE /Change /TN \"{0}\" /DISABLE", this.FullTaskName);
Process.Start(psi);

但为什么还要致电cmd.exe?直接致电SchTasks.exe