Bisakah saya menjalankan program GUI di latar belakang pada baris perintah windows?

13

Misalnya, di Bash, saya bisa melakukan ini:

emacs foo.txt &

Apakah ada yang setara di Windows? Saya tidak bisa menemukan cara untuk melakukan ini dengan emacs versi windows.

Jason Baker
sumber

Jawaban:

21

Perintah untuk meluncurkan program dari baris perintah di Windows adalah "mulai"

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

Anda mungkin ingin menggunakan opsi MIN untuk memulai program yang diminimalkan

Kevin Kuphal
sumber
2
FYI, perintah yang benar dalam hal ini adalah "start / B emacs foo.txt". Kalau tidak, ini berjalan di jendela konsol sendiri, yang dapat diterima, tetapi menjengkelkan. :-)
Jason Baker
3

Saya tidak tahu apakah itu akan cukup, tetapi cobalah

start emacs foo.txt

Ini tidak akan masuk ke latar belakang tetapi lebih tepatnya akan memulai jendela cmd.exe terpisah untuk perintah.

kubanczyk
sumber
2

HaHa, saya berhasil, Untuk menggunakan text3 luhur sebagai server preview penurunan harga adalah usulan saya, setelah saya menutup jendela teks luhur, saya tidak akan bekerja. Saya akan mencoba banyak metode, akhirnya berhasil. pertama, Anda harus membuat kelelawar untuk memulai program ini.

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

Sencond, jalankan kelelawar ini dengan tugas jadwal.

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

tambahkan pemicu untuk menjalankan pemukul ini sesuai jadwal ini

tambahkan kelelawar ini sebagai operasi untuk dijalankan

Hasil ini adalah bahwa ia berfungsi untuk menghindari menampilkan jendela teks luhur. Dan itu berfungsi bertentangan dengan teks luhur yang biasanya dibuka.

Mungkin Anda sudah menebak, saya menggunakan OmniMarkupPreviewerplugin untuk melihat penurunan harga. Saya telah memperbaiki bug ini (atau tidak fitur sempurna) yang menggunakan id tampilan yang berbeda setiap kali.

vincent
sumber
1

Tergantung pada versi Windows yang Anda gunakan.

Di Vista Anda harus bisa mengetikkan nama exe di path Anda dan membuatnya langsung setelah command prompt ditutup.

MathewC
sumber
1

mulai kalk

Cara Memulai Program Dari Prompt Perintah di Windows

The MULAI Perintah ini digunakan pada MS-DOS prompt untuk memulai program MS-DOS-based atau berbasis Windows. Program dimulai sebagai tugas terpisah yang dapat dijalankan di latar depan atau di latar belakang.

Jindrich
sumber
1

Sayangnya saya tidak berpikir ini mungkin.

Anda dapat melakukan ini di skrip Host Windows Scripting, dengan sesuatu seperti:

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

Di mana "0" menyatakan bahwa jendela yang dihasilkan harus disembunyikan (untuk opsi lain, lihat dokumentasi di http://msdn.microsoft.com/en-us/library/d5fk67ky(VS.85).aspx ) dan " true "menyatakan bahwa Anda ingin menunggu perintah selesai sebelum skrip Anda dijalankan.

Ini akan menjadi latihan sederhana untuk menyelesaikan ini dalam skrip generik "jalankan perintah ini tersembunyi" yang dapat Anda gunakan dari baris perintah.

Jika Anda memiliki Microsoft PowerShell baru yang diinstal, maka mungkin ada cara yang lebih mudah untuk melakukan ini (saya belum bekerja dengan PowerShell).

Jika Anda senang memiliki jendela yang diperkecil maka Anda dapat melakukannya dengan perintah "mulai" yang disebutkan lain. Sayangnya opsi "/ B" (yang sepertinya Anda inginkan) hanya untuk perintah dan tidak menghentikan aplikasi berjendela yang muncul di layar.

Catatan: yang mana pun dari hal di atas yang Anda gunakan untuk memulai program dengan jendela utama tersembunyi / diminimalkan, tidak ada yang menghentikannya membuat jendela baru yang terlihat, atau membawa jendela utama ke atas dan menjadi fokus, setelah dijalankan.

David Spillett
sumber
1

sc create service dan menjalankannya memiliki karakter khusus pada file dan parameter misalnya

sc create ngrok "cmd /c \"c:\tmp\ngrok.exe\" http 80" type=own type=interactive
Lalo
sumber
1
sc buat nrgok binpath = "cmd / c \" c: \ tmp \ ngrok.exe \ "http 80" type = jenis sendiri = berinteraksi
Lalo