Command Prompt: jalankan skrip di latar belakang (setara dengan Linux & / bg)

23

Di Linux Anda dapat melakukan ini:

$ php blah.php> some.log &

untuk berjalan blah.phpdi latar belakang. Ini sama dengan Ctrl+ zmaka bgperintah.

Apakah ada yang setara dengan keduanya untuk Windows Command Prompt?

DOOManiac
sumber
1
Saya tidak percaya ada, tetapi Anda dapat meluncurkan sebanyak mungkin perintah yang Anda butuhkan. Apa yang ingin Anda capai?
uSlackr
Saya menggunakan> untuk masuk ke file, dan saya tidak ingin meminta untuk hanya duduk di sana. Saya mungkin ingin terus bekerja pada jendela prompt yang sama dengan direktori yang sama.
DOOManiac
Versi windows apa?
EBGreen
Windows 7 (64-bit)
DOOManiac

Jawaban:

41

Windows memang memiliki fungsi yang mirip dengan Linux &, untuk meluncurkan proses sedemikian rupa sehingga mereka tidak mengambil alih konsol Anda. Alih-alih bendera baris perintah, itu adalah awalan perintah.

Cukup jalankan perintah Anda dengan startdi depannya, seperti: C:\> start myprog.exe

Itu juga bekerja dengan perintah, bukan hanya executable: C:\> start dir

Ini akan memulai jendela konsol baru dan menjalankan perintah di dalamnya.

Jika Anda tidak ingin jendela konsol baru muncul ketika menjalankan perintah, gunakan /Bsakelar, seperti ini: C:\> start /B myprog.exe

Ada beberapa opsi lain yang dapat Anda tentukan untuk mengonfigurasi cara menjalankan perintah. Anda dapat mengetahuinya dengan membaca bantuan startmenggunakan start /?.

Ben Richards
sumber
1

Ini dapat menjalankan file di latar belakang dari prompt perintah atau file batch

@Echo off
Echo Set WshShell = CreateObject("WScript.Shell")   >>%temp%\ghost.vbs
Echo WshShell.Run chr(34) ^& "MyFile" ^& Chr(34), 0 >>%temp%\ghost.vbs
Echo Set WshShell = Nothing                         >>%temp%\ghost.vbs
start %temp%\ghost.vbs
timeout /t 1 >nul
del %temp%\ghost.vbs

Sekarang ganti MyFiledengan file yang ingin Anda jalankan di latar belakang.

Anthony
sumber
2
(1) Bisakah Anda menjelaskan cara kerjanya (hanya sedikit)? (2) Pada dasarnya, ini menggunakan startperintah. Itu menciptakan hal antara yang menjalankan perintah pengguna, dan kemudian menggunakan startperintah untuk memulai hal antara. Jadi ini adalah mesin Rube Goldberg . Bagaimana ini lebih baik daripada jawaban yang lain, yang menyarankan menggunakan startsecara langsung? (3) Pertanyaan menunjukkan pengalihan I / O ( > some.log). Bagaimana cara pengguna melakukan I / O redirection dengan jawaban ini? Letakkan di baris perintah, atau bangun di WshShell.Runbaris di skrip?
Scott
Jangan merespons dalam komentar; edit jawaban Anda untuk membuatnya lebih jelas dan lebih lengkap.
Scott