我可以在Windows命令行的后台运行GUI程序吗?


Answers:


21

在Windows中从命令行启动程序的命令是“开始”。

Starts a separate window to run a specified program or command.

START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/AFFINITY <hex affinity>] [/WAIT] [/B] [command/program]
      [parameters]

    "title"     Title to display in  window title bar.
    path        Starting directory
    B           Start application without creating a new window. The
                application has ^C handling ignored. Unless the application
                enables ^C processing, ^Break is the only way to interrupt
                the application
    I           The new environment will be the original environment passed
                to the cmd.exe and not the current environment.
    MIN         Start window minimized
    MAX         Start window maximized
    SEPARATE    Start 16-bit Windows program in separate memory space
    SHARED      Start 16-bit Windows program in shared memory space
    LOW         Start application in the IDLE priority class
    NORMAL      Start application in the NORMAL priority class
    HIGH        Start application in the HIGH priority class
    REALTIME    Start application in the REALTIME priority class
    ABOVENORMAL Start application in the ABOVENORMAL priority class
    BELOWNORMAL Start application in the BELOWNORMAL priority class
    AFFINITY    The new application will have the specified processor
                affinity mask, expressed as a hexadecimal number.
    WAIT        Start application and wait for it to terminate

您可能想使用MIN选项启动最小化的程序


2
仅供参考,在这种情况下,正确的命令是“ start / B emacs foo.txt”。否则,它将在自己的控制台窗口中运行,这是可以接受的,但很烦人。:-)
Jason Baker,2009年

3

我不知道是否足够,但是尝试

start emacs foo.txt

它不会进入后台,而是会为命令启动单独的cmd.exe窗口。


2

哈哈,我成功了,将sublime text3用作markdown预览服务器是我的建议,当我关闭sublime text的窗口后,我将无法使用。我会尝试许多方法,最后它起作用了。首先,您应该创建一个蝙蝠来启动该程序。

start  /B "" "D:\dev\sublime3\Sublime Text 3\subl.exe" "-s" "%USERPROFILE%\Dropbox\dev\apis\*.markdown" 

然后,按计划任务运行此蝙蝠。

run window+R->taskschd.msc->add a task

添加触发器以根据此时间表运行该蝙蝠

将此蝙蝠添加为要执行的操作

结果是,它避免显示崇高文本窗口,并且与通常打开的崇高文本发生冲突。

也许您已经猜到了,我使用OmniMarkupPreviewer插件来预览markdown 。我已修复了此bug(或不完善的功能),它每次都使用不同的视图id。


1

取决于您使用的Windows版本。

在Vista中,您应该能够在路径中键入exe的名称,并在关闭命令提示符后使其生效。



1

不幸的是,我认为这是不可能的。

您可以在Windows脚本宿主脚本中执行以下操作:

Set oShell = WScript.CreateObject("WScript.Shell")
Set oProc = oShell.Run "<your command here>",0,True

“ 0”表示应隐藏结果窗口(有关其他选项,请参见http://msdn.microsoft.com/zh-cn/library/d5fk67ky(VS.85).aspx上的文档),“ true”表示您要在脚本继续执行之前等待命令完成。

将其包装在可以从命令行使用的通用“隐藏此命令”脚本中将是一个简单的练习。

如果您安装了Microsoft的新的新PowerShell,那么可能会有一种更简便的方法(我尚未使用PowerShell)。

如果您愿意将窗口最小化,则可以使用其他提到的“开始”命令来完成。不幸的是,“ / B”选项(听起来像是您想要的)仅用于命令,并且不会停止窗口应用程序出现在屏幕上。

注意:您使用以上哪种方法来启动具有隐藏/最小化主窗口的程序,没有什么可以阻止它创建可见的新窗口,或者一旦主窗口运行就使其聚焦。


1

sc create service 并运行它在文件和参数上具有特殊字符,例如

sc create ngrok "cmd /c \"c:\tmp\ngrok.exe\" http 80" type=own type=interactive

1
sc创建nrgok binpath =“ cmd / c \” c:\ tmp \ ngrok.exe \“ http 80” type = own type = interact
Lalo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.