Pertanyaan ini sudah ada jawabannya di sini:
Pada Windows XP, dapatkah saya menjalankan file batch (.bat atau .cmd), melalui pintasan, tanpa "jendela hitam"?
Pertanyaan ini sudah ada jawabannya di sini:
Pada Windows XP, dapatkah saya menjalankan file batch (.bat atau .cmd), melalui pintasan, tanpa "jendela hitam"?
Jawaban:
Simpan yang berikut ini sebagai wscript, misalnya, hidecmd.vbs setelah mengganti "testing.bat" dengan nama file batch Anda.
Set oShell = CreateObject ("Wscript.Shell")
Dim strArgs
strArgs = "cmd /c testing.bat"
oShell.Run strArgs, 0, false
Parameter kedua oShell.Run
adalah intWindowStyle
nilai yang menunjukkan tampilan jendela program dan nilai nol adalah untuk jendela tersembunyi.
Referensi ada di sini http://msdn.microsoft.com/en-us/library/d5fk67ky.aspx
.bat
file sebagai administrator menggunakan metode ini?
Ini hanya penyederhanaan jawaban Shaji. Anda dapat menjalankan skrip batch Anda melalui skrip VBScript (.vbs) seperti ini:
'HideBat.vbs
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True
Ini akan mengeksekusi file batch Anda tanpa jendela perintah yang ditampilkan.
.bat
file sebagai administrator menggunakan metode ini?
Hanya untuk memperluas jawaban "Gunakan Windows Scripting" (yang saya anggap terbaik karena sudah built-in) di sini adalah cara melakukannya dengan menggunakan skrip pembungkus tunggal dan meneruskan nama file batch "nyata" sebagai parameter. Parameter tambahan akan diteruskan ke file batch.
If WScript.Arguments.Count >= 1 Then
ReDim arr(WScript.Arguments.Count-1)
For i = 0 To WScript.Arguments.Count-1
Arg = WScript.Arguments(i)
If InStr(Arg, " ") > 0 Then Arg = """" & Arg & """"
arr(i) = Arg
Next
RunCmd = Join(arr)
CreateObject("Wscript.Shell").Run RunCmd, 0, True
End If
Jadi mis. Simpan file di atas sebagai NoShell.vbs
tempat, lalu panggil:
NoShell.vbs c:\foo\my_batch_file.bat
Akhirnya, jika Anda ingin menjalankan ini dari suatu tempat yang tidak memahami file .vbs (seperti "Alat Eksternal" di Visual Studio), Anda akan ingin memanggil C:\Windows\System32\wscript.exe
dengan file vbs sebagai parameter pertama dan Anda file batch sebagai yang kedua.
"C:\My Files\HideCmd.vbs" c:\foo\my_batch_file.bat
.
"C:\My Files\HideCmd.vbs" c:\my things\my_batch_file.bat
. Tidak peduli apa yang saya coba untuk jalur - kutip ganda di sekitar itu semua,% 20 di tempat ruang, atau kombinasi dari keduanya, tidak ada yang berhasil. Saya mendapatkan pesan kesalahan yang memberi tahu saya bahwa file tersebut tidak dapat ditemukan atau tidak ada yang terjadi. Apakah ini karena kesalahan pengguna di pihak saya, batasan Windows dengan bidang Target untuk pintasan, atau masalah dengan skrip vbs di mana ia tidak menangani jalur file dengan spasi dengan benar?
Gunakan mulai dengan opsi '/ B'. Sebagai contoh:
@echo off
start /B go.bat
start /b
hanya akan menjalankan program di konsol yang saat ini dialokasikan bukannya melahirkan yang baru. Anda tetap akan mendapatkan yang baru karena batch harus dijalankan dengan cmd (yang, pada gilirannya [kejutan], membuka konsol).
SYSTEM
di C / C ++).
cmd /c foo.cmd
. Sama sekali tidak perlu digunakan start
dalam skenario itu, dan, saya berpendapat bahwa system
tidak boleh digunakan untuk mendukung CreateProcess
. Dengan meluncurkan file batch, Anda sudah bergantung pada satu platform, Anda mungkin juga menggunakan alat yang lebih baik untuk pekerjaan itu.
cmd /c
sebelumnya. Perintah cmd adalah apa yang saya butuhkan dalam kasus saya, tetapi semua jawaban stackexchange yang saya temukan sejauh ini, tentang file batch yang menjalankan file batch lain, memiliki jawaban teratas untuk digunakan mulai ...
start /b go.bat
tidak akan mengalokasikan konsol baru (yaitu instance dari conhost.exe - atau utas di csrss.exe sebelum Windows 7). Namun itu akan membuat kekacauan karena skrip batch dijalankan dengan instance baru dari cmd.exe yang dilampirkan ke konsol yang sama . Kedua instance shell akan bersaing untuk membaca input dari konsol, biasanya bergantian. Perlu /w
(misalnya start /b /w go.bat
) untuk menunggu contoh kedua, yang mirip dengan menggunakan cmd /c
jika menggunakan system
. Juga, jika Anda menelepon CreateProcess
, jalankan go.bat
langsung. Tidak perlu cmd /c
.
Sumber terbuka GPL gratis "Buat Proses Tersembunyi"
http://www.commandline.co.uk/chp/
Microsoft Security Essentials, dan mungkin sebagian besar pemindai virus / malware akan memperlakukan executable, chp.exe, sebagai virus karena menyembunyikan program apa pun yang Anda tentukan dari menampilkan jendela atau tombol bilah tugas, seperti halnya virus.
Itu bukan virus. Misalnya, itu tidak menyembunyikan proses target dari muncul di task manager. Dan tentu saja kode sumber disertakan sehingga Anda dapat melihatnya sangat kecil dan tidak melakukan apa pun selain menjalankan program apa pun yang Anda berikan.
Anda bahkan tidak perlu percaya bahwa chp.exe yang disertakan benar-benar dibuat dari sumber itu. Anda dapat melanjutkan dan membuang chp.exe yang disertakan dan kompilasi sendiri dari sumbernya, dan semua alat yang diperlukan untuk melakukannya bahkan gratis dan dapat diunduh.
Anda juga dapat membuat pintasan ke file .bat atau .cmd, lalu klik kanan pada pintasan, Properties, tab Shortcut, Run: Minimized. Kemudian dalam tugas yang dijadwalkan, gunakan pintasan alih-alih file .bat / .cmd secara langsung. Itu akan mencegah jendela dari muncul, tetapi tombol taskbar akan tetap muncul.
Anda dapat menggunakan skrip jendela seperti AutoIt .
Sebagai contoh, cukup tulis ini ke editor skrip AutoIt. Ini cukup sederhana
Run("C:\test\batchfile.bat", "", @SW_HIDE)
Jika Anda ingin menjalankannya dalam satu lingkaran,
$x=0
Do
Run("C:\test\batchfile.bat", "", @SW_HIDE)
Sleep(5000)
Until $x = 1
Kompilasi sebagai .exe - dan Anda selesai.
Demikian juga, di AutoHotkey :
#NoTrayIcon ; To prevent momentary icon pop-up
run whatever.bat arg1 arg2,,hide
Gunakan Mulai Tersembunyi (biaya $ 20)
Tersembunyi Mulai - Menjalankan Aplikasi dan File Batch tanpa Jendela Konsol atau UAC Prompt
Aplikasi konsol dan file batch dijalankan secara teratur saat startup Windows atau dalam jadwal. Ketidaknyamanan utama ini adalah bahwa setiap aplikasi membuka jendela konsol yang berkedip di layar. Hidden Start (atau Hstart) adalah utilitas baris perintah ringan yang memungkinkan Anda untuk menjalankan aplikasi konsol dan file batch tanpa jendela di latar belakang, menangani peningkatan hak istimewa UAC di Windows 7 dan Vista, memulai beberapa perintah secara paralel atau serempak, dan banyak lagi .
Solusi sederhana, tanpa menggunakan program tambahan.
Semoga berhasil!