Apa perintah atau cara tercepat untuk menampilkan hasil ke konsol menggunakan vbscript?
165
Maksudmu:
Wscript.Echo "Like this?"
Jika Anda menjalankannya di bawah wscript.exe
(penangan default untuk ekstensi .vbs, jadi apa yang akan Anda dapatkan jika Anda mengklik dua kali skrip) Anda akan mendapatkan dialog "MessageBox" dengan teks Anda di dalamnya. Jika Anda menjalankannya di bawah, cscript.exe
Anda akan mendapatkan output di jendela konsol Anda.
MsgBox("text")
atauMsgBox(object.property)
tetapiWscript.Echo
lebih mudah untuk menulis. Terima kasih.WScript.Echo
harus digunakan untuk apakah Anda menjalankan melaluiWScript
atauCScript
. Artinya, tidak adaCScript.Echo
, kalau-kalau googler masa depan bertanya-tanya. ( Sangat senang kotak pesan hilang [ketika dijalankan dengancscript
], namun; terima kasih.)WScript.Echo
. Saya kira, jika Anda ingin tetap benar-benar dalam WScript Anda bisa melakukan sesuatu yang mengerikan seperti Exec'ing dari proses lain untuk melakukan "SendKeys" ke proses induk untuk menutup MessageBox.popup
metode ini . Sangat mirip denganecho
tetapi memungkinkan Anda untuk menentukan batas waktu setelah itu akan secara otomatis menutup kotak popup. Sangat nyaman dan mudah digunakan: technet.microsoft.com/en-us/library/ee156593.aspxIni ditemukan di Dragon-IT Scripts dan Code Repository .
Anda dapat melakukan ini dengan yang berikut dan menjauh dari perbedaan cscript / wscript dan memungkinkan Anda untuk mendapatkan output konsol yang sama dengan file batch. Ini dapat membantu jika Anda memanggil VBS dari file batch dan harus membuatnya terlihat mulus.
sumber
WScript.Echo
. Bahkan, perbedaannya diperbesar, karena skrip tidak akan lagi berjalan di bawah WScript. Ini adalah teknik yang valid yang memiliki kegunaannya, misalnya jika seseorang perlu menulis ke StdErr, tetapi dalam konteks jawaban ini, itu menyesatkan.WScript.Echo
:cscript //b foobar.vbs
Berjalanfoobar.vbs
tanpa keluaran konsol, tetapi dengan metode Rob, Anda dapat memiliki keluaran bahkan ketika meneruskan\\b
kecscript.exe
Anda hanya perlu memaksa cscript sebagai gantinya wscript. Saya selalu menggunakan templat ini. Fungsi ForceConsole () akan mengeksekusi vbs Anda ke dalam cscript, juga Anda memiliki alias bagus untuk mencetak dan memindai teks.
sumber
Saya menemukan posting ini dan kembali ke pendekatan yang saya gunakan beberapa waktu lalu yang mirip dengan @ MadAntrax.
Perbedaan utama adalah bahwa ia menggunakan kelas yang ditentukan pengguna VBScript untuk membungkus semua logika untuk beralih ke CScript dan mengeluarkan teks ke konsol, sehingga membuat skrip utama sedikit lebih bersih.
Ini mengasumsikan bahwa tujuan Anda adalah untuk mengalirkan output ke konsol, daripada meminta output masuk ke kotak pesan.
Kelas cCONSOLE ada di bawah. Untuk menggunakannya, sertakan kelas lengkap di akhir skrip Anda, dan kemudian instantiate tepat di awal skrip. Berikut ini sebuah contoh:
Ini adalah kode untuk kelas cCONSOLE
sumber
Ada lima cara untuk menampilkan teks ke konsol:
WScript.Echo akan menampilkan konsol tetapi hanya jika skrip mulai menggunakan cscript.exe. Ini akan ditampilkan ke kotak pesan jika mulai menggunakan wscript.exe.
WScript.StdOut.Write dan WScript.StdOut.WriteLine akan selalu ditampilkan ke konsol.
StdOut.Write dan StdOut.WriteLine juga akan selalu ditampilkan ke konsol. Dibutuhkan pembuatan objek tambahan tetapi sekitar 10% lebih cepat dari WScript.Echo.
sumber