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

本文关键字:退出 命令提示符 处理 控制台 应用程序 | 更新日期: 2023-09-27 18:02:11

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

  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);

,但是这会终止进程,并且不会关闭打开的命令提示符。

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

执行任务后,需要退出命令提示符。

假设您使用cmd.exe调用SCHTASKS.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的加入。

&允许您将多个命令串联起来按顺序执行。

当您使用/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