Jawaban:
Menggunakan START
perintah untuk menjalankan setiap program akan memberi Anda apa yang Anda butuhkan:
START "title" [/D path] [options] "command" [parameters]
Setiap START
doa menjalankan perintah yang diberikan dalam parameternya dan segera kembali, kecuali dijalankan dengan /WAIT
sakelar.
Itu berlaku untuk aplikasi baris perintah. Lagi pula, aplikasi tanpa baris perintah segera kembali, jadi untuk memastikan, jika Anda ingin menjalankan semua secara tidak sinkron, gunakan START
.
Menggabungkan beberapa jawaban sebelumnya, Anda bisa mencoba start /b cmd /c foo.exe
.
Sebagai contoh sepele, jika Anda ingin mencetak versi java / groovy / grails / gradle, Anda bisa melakukan ini dalam file batch:
@start /b cmd /c java -version
@start /b cmd /c gradle -version
@start /b cmd /c groovy -version
@start /b cmd /c grails -version
Jika Anda memiliki sesuatu seperti Process Explorer (Sysinternals), Anda akan melihat beberapa proses cmd.exe anak masing-masing dengan proses java (sesuai perintah di atas). Output akan mencetak ke layar dalam urutan apa pun yang mereka selesai.
start /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
cmd /c : Carries out the command specified by string and then terminates
echo off
di awal yang, ketika Anda mengeksekusi skrip, akan mencegah semua perintah untuk digaungkan ke konsol. The @
mirip tapi hanya untuk satu perintah saja. Jadi, terkadang Anda akan melihat @echo off
.
Anda dapat menggunakan perintah mulai untuk menelurkan proses latar belakang tanpa meluncurkan jendela baru:
start /b foo.exe
Proses baru tidak akan terputus dengan CTRL-C; Anda dapat membunuhnya hanya dengan CTRL-BREAK (atau dengan menutup jendela, atau melalui Task Manager.)
BREAK
pada keyboard hari ini?
Buat file batch dengan baris berikut:
start foo.exe
start bar.exe
start baz.exe
The perintah mulai menjalankan perintah Anda di jendela baru, sehingga semua 3 perintah akan menjalankan asynchronously.
Gunakan perintah MULAI :
start [programPath]
Jika jalur ke program berisi spasi, ingatlah untuk menambahkan tanda kutip. Dalam hal ini Anda juga perlu memberikan judul untuk jendela konsol pembuka
start "[title]" "[program path]"
Jika Anda perlu memberikan argumen, tambahkan di akhir (di luar tanda kutip perintah)
start "[title]" "[program path]" [list of command args]
Gunakan opsi / b untuk menghindari membuka jendela konsol baru (tetapi dalam hal ini Anda tidak dapat mengganggu aplikasi menggunakan CTRL-C
Ada opsi ketiga (dan mungkin jauh lebih mudah). Jika Anda ingin memutar beberapa instance dari satu program, menggunakan prosesor perintah Unix-style seperti Xargs atau GNU Parallel dapat menjadikannya proses yang cukup mudah.
Ada klon win32 Xargs yang disebut PPX2 yang yang membuat ini cukup mudah.
Misalnya, jika Anda ingin transcode direktori file video, Anda bisa menjalankan perintah:
dir /b *.mpg |ppx2 -P 4 -I {} -L 1 ffmpeg.exe -i "{}" -quality:v 1 "{}.mp4"
Memilih ini secara terpisah, dir /b *.mpg
mengambil daftar file .mpg di direktori saya saat ini, |
operator mem-pipe daftar ini ke ppx2, yang kemudian membangun serangkaian perintah untuk dieksekusi secara paralel; 4 sekaligus, sebagaimana ditentukan di sini oleh -P 4
operator. Itu-L 1
Operator memberitahu ppx2 hanya mengirim satu baris dari daftar direktori kami untuk ffmpeg pada suatu waktu.
Setelah itu, Anda cukup menulis baris perintah ( ffmpeg.exe -i "{}" -quality:v 1 "{}.mp4"
), dan{}
secara otomatis diganti untuk setiap baris daftar direktori Anda.
Ini tidak berlaku secara universal untuk setiap kasus, tetapi jauh lebih mudah daripada menggunakan penyelesaian file batch yang dijelaskan di atas. Tentu saja, jika Anda tidak berurusan dengan daftar file, Anda juga dapat menyalurkan konten file teks atau program lain ke dalam input pxx2.
Saya tidak bisa mendapatkan apa pun untuk bekerja saya akhirnya hanya menggunakan PowerShell untuk memulai skrip kelelawar .. kadang-kadang bahkan mulai cmd / c tidak bekerja tidak yakin mengapa .. Saya bahkan mencoba hal-hal seperti mulai cmd / c notepad & keluar
start-Process "c:\BACKUP\PRIVATE\MobaXterm_Portable\MobaXterm_Portable.bat" -WindowStyle Hidden
help
dengan seksama. :)