如何在后台使用 运行 c# console application .exe?
How to run c# console application .exe in background?
我正在尝试使用 cmd 中的命令模拟数据库更新,但我需要能够 运行 从 cmd 调用这些命令的 .exe 并继续使用相同的 cmd window.
我试图隐藏 Process 将创建的 window,这工作正常,但是当我 运行 myFile.exe 它挂断了 cmd window习惯于 运行 它直到过程完成。这是一个问题,因为完成后我的代码将一次 运行ning 几个小时,我宁愿不让死命令 window 打开只是为了 运行 应用程序。
目前 ProcessWindowStyle.Hidden 是我用来调用命令并隐藏 window 的命令,该命令每半秒将我数据库中的第一个值设置为数字 0-25,但我可以在达到 25 并退出应用程序之前,不要使用 cmd window。
static void Main(string[] args)
{
int Number_Of_Args = args.Length;
int[] Arguments = Check_Args(args, Number_Of_Args);
Run_Command(Arguments);
}
public static void Run_Command(int[] Arguments)
{
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
for (int i = 0; i <=25 ; i++)
{
startInfo.Arguments = "/C dbset 1 = " + i.ToString();
process.StartInfo = startInfo;
process.Start();
Thread.Sleep(500);
}
}
完成后,我需要将 for 循环变成 while 循环,它将不断更改数据库值,因此将其挂在 cmd window 中并不理想。我的最终目标是能够使用“C:\filelocation Simulation.exe arg1 arg2 arg3”从 cmd 调用我的应用程序,并让它启动 运行ning 并在我处理其他任何业务时更新数据库当时使用 cmd window。
编辑:我可以调用 Start Simulation.exe,它会打开一个新的 cmd window 和 运行 新 window 中的代码,让我控制原来window。如果我可以让 Start Simulation.exe 隐藏新的 cmd window 或者让代码默认为 Start a new window 当简单地称为 Simulation.exe 时,这可能是我需要的,尽管同时拥有两者是最好的,如前所述,这样我就可以 运行 命令而不失去对当前 cmd window.
的控制
我做了一些搜索,如果我理解正确,我想你可以通过以下方式实现你想要的:
start /B ConsoleApp.exe
我正在尝试使用 cmd 中的命令模拟数据库更新,但我需要能够 运行 从 cmd 调用这些命令的 .exe 并继续使用相同的 cmd window.
我试图隐藏 Process 将创建的 window,这工作正常,但是当我 运行 myFile.exe 它挂断了 cmd window习惯于 运行 它直到过程完成。这是一个问题,因为完成后我的代码将一次 运行ning 几个小时,我宁愿不让死命令 window 打开只是为了 运行 应用程序。
目前 ProcessWindowStyle.Hidden 是我用来调用命令并隐藏 window 的命令,该命令每半秒将我数据库中的第一个值设置为数字 0-25,但我可以在达到 25 并退出应用程序之前,不要使用 cmd window。
static void Main(string[] args)
{
int Number_Of_Args = args.Length;
int[] Arguments = Check_Args(args, Number_Of_Args);
Run_Command(Arguments);
}
public static void Run_Command(int[] Arguments)
{
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
for (int i = 0; i <=25 ; i++)
{
startInfo.Arguments = "/C dbset 1 = " + i.ToString();
process.StartInfo = startInfo;
process.Start();
Thread.Sleep(500);
}
}
完成后,我需要将 for 循环变成 while 循环,它将不断更改数据库值,因此将其挂在 cmd window 中并不理想。我的最终目标是能够使用“C:\filelocation Simulation.exe arg1 arg2 arg3”从 cmd 调用我的应用程序,并让它启动 运行ning 并在我处理其他任何业务时更新数据库当时使用 cmd window。
编辑:我可以调用 Start Simulation.exe,它会打开一个新的 cmd window 和 运行 新 window 中的代码,让我控制原来window。如果我可以让 Start Simulation.exe 隐藏新的 cmd window 或者让代码默认为 Start a new window 当简单地称为 Simulation.exe 时,这可能是我需要的,尽管同时拥有两者是最好的,如前所述,这样我就可以 运行 命令而不失去对当前 cmd window.
的控制我做了一些搜索,如果我理解正确,我想你可以通过以下方式实现你想要的:
start /B ConsoleApp.exe