Saya memiliki layanan Windows (server integrasi Bamboo) yang menjalankan file batch sebagai subprocess (pekerjaan build) dari skrip itu. Di dalam file batch itu saya ingin dapat memulai suatu proses (sebut saja itu workerprocess.exe) dan biarkan proses itu berjalan di latar belakang. Ini semua baik, saya telah menggunakan:
start "title" /B workerprocess.exe
Semuanya baik dan bagus. Masalahnya adalah bahwa ini kemudian menahan penyelesaian pekerjaan build. Jadi skrip batch selesai, tetapi karena subproses pekerjaprocess.exe, layanan (Bambu) tidak tahu bahwa ia telah selesai: masih menunggu (dan menampilkan output dari) pekerjaprocess.exe.
Saya telah melihat dokumentasi untuk perintah mulai, dan saya tidak dapat melihat apa pun yang melakukan apa yang saya inginkan. Saya melihat pertanyaan ini tetapi itu tidak benar-benar membantu - layanan masih berakhir menunggu proses untuk menyelesaikan.
Jadi saya kira dalam ringkasan: bagaimana saya bisa menjalankan proses baru dari skrip batch sehingga benar-benar terlepas dan tidak akan menahan apa pun yang terjadi menunggu skrip batch selesai.
sumber
Jawaban:
Sudahkah Anda mencoba Hidden Start (HSTART) ? (Biaya $ 20)
Saya menggunakannya secara pribadi untuk menjalankan pekerjaan batch per jam dengan jendela yang tersembunyi. Mereka juga menyebutkan bahwa Anda dapat menjalankan perintah secara berurutan sebagai parameter (atau secara default, saya asumsikan) berjalan secara tidak sinkron. Saya tidak tahu bagaimana ini akan memengaruhi pertikaian Anda tentang CPU, memori, atau disk ... tetapi perangkat lunak ini juga memberi Anda opsi untuk menunggu beberapa saat sebelum melakukan tindakan.
sumber
Semua skrip yang ditautkan dapat diunduh dan disimpan dengan nama apa pun yang Anda rasa nyaman.
1) Solusi IEXPRESS - karena argumen hanya menerima perintah dan argumennya.
Contoh penggunaan:
2) SCHTASKS - Sekali lagi hanya menerima dua argumen - perintah dan argumen. Juga memeriksa apakah itu dimulai dengan izin yang ditinggikan dan jika mungkin mendapatkan PID proses dengan perintah WEVTUTIL.
Contoh penggunaan:
3) 'WScript.Shell' - skrip adalah pembungkus penuh 'WScript.Shell' dan setiap opsi yang mungkin dapat diatur melalui opsi baris perintah. Ini adalah jscript / batch hybrid dan dapat disebut sebagai kelelawar.
Contoh penggunaan (untuk info lebih lanjut cetak bantuan dengan '-h'):
4) 'Win32_ProcessStartup' - lagi pembungkus penuh dan semua opsi dapat diakses melalui argumen baris perintah. Kali ini WSF / batch hybrid dengan beberapa Jscript dan beberapa potongan kode VBScript - tetapi mengembalikan PID dari proses yang dimulai. Jika proses id tidak menyembunyikan beberapa opsi seperti koordinat X / Y dapat digunakan.
Contoh penggunaan (untuk info lebih lanjut cetak bantuan dengan '-h'). Ini akan memerlukan path lengkap ke skrip executable / jika tidak ada di
%path%
:5). Solusi NET . Sebagian besar opsi opsi ProcessStartInfo digunakan (tetapi pada akhirnya saya terlalu lelah untuk memasukkan semuanya):
Contoh penggunaan (untuk info lebih lanjut cetak bantuan dengan '-h'):
sumber