Answers:
start
应该已经是正确的方向。但是,/b
将其附加到同一控制台。现在的问题是,当关闭控制台窗口时,与此控制台关联的所有进程也会被关闭。
您可以使用start
没有/b
,那么它会在一个新的控制台上运行。如果您想在没有控制台窗口的情况下在后台运行它,那么您将需要使用VBScript或第三方工具:以完全隐藏的方式运行批处理文件
但是,在这种情况下,您将不再看到stdout / stderr输出。但是,您可以通过将其包装在cmd /c your_command > stdout.txt 2> stderr.txt
调用中并通过上述方法之一(VBScript,第三方工具...)来启动该文件,从而将其重定向到文件。
或者,您也可以在退出之前隐藏自己的控制台窗口。我只是编写了一个单行程序来完成此操作(源代码基本上是ShowWindow(GetConsoleWindow(), SW_HIDE)
):http : //share.cherrytree.at/showfile-24286/hide_current_console.exe
这样,您可以使用start /b
,并且当您要“关闭”控制台(从技术上将其隐藏)时,将运行hide_current_console & exit
该操作,该操作将隐藏控制台,然后关闭cmd.exe进程(而非python进程)-在一行中,因为您无法exit
在控制台已隐藏后键入。
hide_current_console
来的?在W10 PC上不起作用。