我有以下命令从调度程序运行任务,调度程序是一个控制台应用程序:
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进程并没有关闭打开的命令提示符。我需要在运行任务后退出命令提示符。
答案 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
。