Bolehkah saya Menjalankan Fail Batch Windows tanpa Prompt Perintah yang Boleh Dilihat?
Fail-fail batch adalah cara yang berguna untuk melaksanakan beberapa perintah dalam Windows, tetapi adakah ia tetap berjalan di dalam latar belakang? Baca tentang bagaimana caranya.
Sesi Soalan & Jawapan hari ini datang kepada kami dengan ihsan SuperUser-bahagian pembahagian Stack Exchange, kumpulan yang diketuai oleh komuniti laman web Q & A.
Soalan
Pembaca SuperUser Jake mahu menjalankan fail BAT secara tidak jelas, dia menulis:
Saya telah memasang permata ruby yang dipanggil Redcar, yang dilancarkan dari baris arahan. Apabila ia berjalan, ia mencuri shell sehingga ia tamat, jadi saya perlu membuat tetingkap cangkang baru untuk terus melakukan kerja baris perintah. Cengkerang yang saya gunakan adalah shell GITBash dari MySysGit.
Saya dapati fail Redcar.bat yang dimaksudkan untuk melancarkan Redcar sebagai pintasan, saya menganggapnya, tetapi saya tidak mahu tingkap command prompt tambahan untuk dibuka setiap kali saya melancarkan fail BAT.
Bagaimanakah saya dapat menjalankan BAT tanpa melihat petikan itu??
Adakah terdapat penyelesaian untuk keinginan Jake yang senyap?
Jawapannya
Penyumbang SuperUser Afrazier menjawab dengan gabungan berita buruk dan baik:
Anda tidak dapat - melaksanakan fail batch dengan Command Prompt yang dibina akan menyimpan tetingkap terbuka sehingga keluar file batch.
Apa yang anda boleh lakukan langkah-langkah untuk memastikan bahawa fail batch keluar secepat mungkin. Jika boleh, ubah suai fail kumpulan untuk menjalankan program apa saja dengan
mulakan
perintah. Secara lalai,mulakan
kembali segera tanpa menunggu program keluar, jadi fail kumpulan akan terus berjalan dan, mungkin, keluar dengan segera. Pasangan yang dengan mengubah suai pintasan anda untuk menjalankan fail batch diminimumkan, dan anda hanya akan melihat flash taskbar tanpa melihat tetingkap di skrin.Satu kaveat untuk ini ialah jika anda menjalankan program mod konsol, yang banyak penafsir skrip, fail batch akan menunggu program keluar, dan menggunakan
mulakan
akan menelurkan tetingkap konsol baru. Apa yang anda perlu lakukan dalam kes ini ialah menjalankan penterjemah versi berasaskan Windows dan bukannya berasaskan konsol - tidakmulakan
perlu. Untuk Perl, anda akan berjalanwperl.exe
bukannyaperl.exe
. Untuk Python, itupythonw.exe
bukannyapython.exe
. Pengedaran win32 lama saya telah dimuat turunrubyw.exe
, yang sepatutnya melakukan perkara yang sama.Kemungkinan terakhir ialah menggunakan alat pihak ketiga untuk menjalankan arahan arahan dengan tetingkap tersembunyi. Saya telah mendengar perkara-perkara seperti itu tetapi tidak pernah digunakan untuk mereka, jadi saya tidak tahu apa-apa khususnya untuk menunjukkan kepada anda.
Pembaca juga menunjuknya kepada thread SuperUser lain yang menyoroti bagaimana anda boleh menggunakan Visual Basic Script untuk melampaui mengurangkan penglihatan dan menyembunyikan langsung CMD prompt. Dalam benang itu, Harry MC menerangkan:
Penyelesaian 1:
Simpan satu baris teks ini sebagai fail
invisible.vbs
:CreateObject ("Wscript.Shell"). Jalankan "" "" & WScript.Arguments (0) & "" "", 0, False
Untuk menjalankan sebarang program atau fail kumpulan secara tidak dapat dilihat, gunakannya seperti ini:
wscript.exe "C: \ Wherever \ invisible.vbs" "C: \ Beberapa Tempat Lain \ MyBatchFile.bat"
Untuk juga dapat menyampaikan / menyampaikan senarai hujah hanya menggunakan dua petikan berganda
CreateObject ("Wscript.Shell"). Jalankan "" & WScript.Arguments (0) & "", 0, False
contoh: Invisible.vbs "Kill.vbs ME.exe"
Penyelesaian 2:
Gunakan alat arahan untuk melancarkan proses secara diam-diam: Tenang.
Menggunakan mana-mana penyelesaian di atas, berdasarkan tahap keselesaan anda menggunakan VBS dan alat pihak ketiga atau tidak, sekurang-kurangnya dapat mengurangkan penglihatan tetingkap CMD atau menghapusnya secara langsung.
Mempunyai sesuatu untuk menambah penjelasannya? Bunyi dalam komen. Ingin membaca lebih banyak jawapan dari pengguna Stack Exchange yang berteknologi tinggi? Lihat thread perbincangan penuh di sini.