
Sesi Tanya & Jawab Hari ini hadir untuk memberi kami SuperUser - subdivisi Stack Exchange, pengelompokan situs web Q & A berbasis komunitas.
Pertanyaan
Pembaca SuperUser Jake ingin menjalankan file BAT tak terlihat, ia menulis:
I have installed a ruby gem called Redcar, which is launched from the command line. When it runs, it steals the shell until it terminates, so I have to create a new shell window to continue doing command line work. The shell I’m using is the GITBash shell from MySysGit.
I found a Redcar.bat file which is meant to launch Redcar as a shortcut, I presume, but I don’t want the extra command prompt window to open whenever I launch the BAT file.
How do I just run the BAT without seeing the prompt?
Apakah ada solusi untuk keinginan cepat yang tersembunyi dari Jake?
Jawaban
Kontributor SuperUser Afrazier merespon dengan kombinasi berita buruk dan baik:
You can’t - executing a batch file with the built in Command Prompt is going to keep a window open until the batch file exits.
What you can do is take steps to make sure that the batch file exits as quickly as possible. If at all possible, modify the batch file to run whatever program with the
start
perintah. Secara default,
start
segera kembali tanpa menunggu program untuk keluar, sehingga file batch akan terus berjalan dan, mungkin, segera keluar. Pasangan itu dengan memodifikasi pintasan Anda untuk menjalankan file batch diminimalkan, dan Anda hanya akan melihat bilah lampu kilat tanpa melihat jendela di layar.
Satu peringatan untuk ini adalah bahwa jika Anda menjalankan program konsol-mode, yang banyak penafsir skripnya, file batch akan menunggu program untuk keluar, dan menggunakan
start
akan menelurkan jendela konsol baru. Apa yang perlu Anda lakukan dalam hal ini adalah menjalankan penerjemah versi berbasis Windows daripada yang berbasis konsol - no
start
perlu. Untuk Perl, Anda akan berlari
wperl.exe
dari pada
perl.exe
. Untuk Python, itu
pythonw.exe
dari pada
python.exe
. Distribusi win32 Ruby yang sudah saya unduh
rubyw.exe
, yang harus melakukan hal yang sama.
Kemungkinan terakhir adalah menggunakan alat pihak ketiga untuk menjalankan command prompt dengan jendela tersembunyi. Saya telah mendengar hal-hal semacam itu tetapi tidak pernah berguna bagi mereka, jadi saya tidak tahu apa-apa khususnya yang mengarahkan Anda.
Pembaca juga mengarahkannya ke thread SuperUser lain yang menyoroti bagaimana Anda dapat menggunakan Visual Basic Script untuk melampaui meminimalkan visibilitas dan langsung menyembunyikan perintah CMD. Di thread itu, Harry MC menjelaskan:
Solution 1:
Save this one line of text as file
invisible.vbs
:
CreateObject ("Wscript.Shell"). Jalankan ""”” & WScript.Arguments (0) & “”””, 0, Salah
Untuk menjalankan program atau file batch apa pun secara tidak terlihat, gunakan seperti ini:
wscript.exe "C: Wherever invisible.vbs" "C: Beberapa Tempat Lain MyBatchFile.bat"
Untuk juga dapat meneruskan / menyampaikan daftar argumen hanya menggunakan dua tanda kutip ganda
CreateObject ("Wscript.Shell"). Jalankan "" & WScript.Arguments (0) &"", 0, Salah
misalnya: Invisible.vbs "Kill.vbs ME.exe"
Solusi 2:
Gunakan alat baris perintah untuk meluncurkan proses secara diam-diam: Tenang.
Menggunakan salah satu solusi di atas, berdasarkan tingkat kenyamanan Anda menggunakan VBS dan alat pihak ketiga atau tidak, setidaknya akan mengurangi visibilitas jendela CMD atau langsung menghapusnya.
Memiliki sesuatu untuk ditambahkan ke penjelasan? Bicaralah di komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange yang paham teknologi lainnya? Lihat diskusi lengkap di sini.