我将程序的路径(例如“ foo.exe”)设置为我的系统路径,因此在cmd / powershell中键入foo将启动程序。但是,当我键入exit退出cmd / powershell时,foo.exe也随之关闭。为什么会发生这种情况,如何防止这种情况发生?
并非所有程序都发生这种情况,只有某些程序才会发生,这意味着这些程序可能应该以不同的方式添加到路径中,或者应该以我猜测的不同方式启动。但是,长时间在Internet上搜索并没有给我任何帮助,因此不胜感激。
如果foo.exe
是console应用程序(为Windows控制台子系统编译的一个应用程序),它将在cmd.exe
/ PowerShell中运行synchronously:也就是说,将不会返回控件到调用外壳程序,直到应用程序退出。这意味着,直到exit
退出,您甚至都不会获得机会类型foo.exe
。
但是,有可能[[is]]运行控制台应用程序异步,即如果您使用job通过 将Start-Job
或Start-Job
运行它;也就是说,Start-ThreadJob
将在background中运行。Start-ThreadJob
退出调用外壳程序foo.exe
进程。
exit
cmdlet;在Windows上,您可以使用它直接启动foo.exe
。在类似Unix的平台上,必须通过Start-Process
实用程序启动它。Start-Process
是GUI