Cara Menampilkan Msgbox langsung dari CMD

Saya ingin menampilkan pesan kepada pengguna dengan menggunakan CMD. Cara yang saya ketahui untuk melakukannya adalah dengan membuat file .vbs (VBScript) dan mengeksekusinya dari CMD seperti ini:

(echo MsgBox "Line 1" ^& vbCrLf ^& "Line 2",262192, "Title")> File.vbs

start File.vbs

Tetapi yang ingin saya lakukan adalah menampilkan pesan tanpa membuat file apapun, langsung dari CMD. Mungkin dengan menggunakan perintah untuk menjalankan VBScripts langsung dari CMD.

Seperti yang disarankan oleh @wysiwyg, pada versi Pro/Bisnis* Windows, anda harus mencari perintah Msg. Perintah ini tersedia di semua versi modern Windows (setidaknya sejauh XP). Untuk menampilkan pesan kepada pengguna yang sedang login, jalankan perintah berikut:

msg %username% Your message here

Hasilnya terlihat seperti ini:

Satu pertimbangan dengan perintah ini adalah bahwa Anda tidak dapat menyesuaikan teks Titlebar.

Anda dapat mempelajari lebih lanjut tentang Msg pada TechNet.


Jika Anda memerlukan solusi yang bekerja pada semua edisi Windows, termasuk Home*, menurut saya metode VBScript yang sudah Anda ketahui adalah solusi paling sederhana untuk masalah ini. Metode ini bekerja pada semua versi dan edisi Windows modern dalam konfigurasi defaultnya, dan mudah digunakan.

Komentar (1)

Seperti yang dikatakan orang lain, tidak ada cara untuk melakukan ini murni dengan cmd, tetapi meskipun itu adalah judul pertanyaannya, menurut saya bagian tanpa file lebih penting bagi Anda dan dalam keadaan tertentu hal ini mungkin bisa dilakukan.

Dengan powershell seharusnya bisa menjalankan kode tanpa file apapun seperti ini:

PowerShell -Command "Add-Type -AssemblyName PresentationFramework;[System.Windows.MessageBox]::Show('Hello World')"

VBS tidak mengizinkan eksekusi langsung kode melalui cscript atau wscript tetapi mshta mengizinkannya. Anda dapat menggunakannya seperti ini (jika Anda membutuhkan beberapa baris gunakan ':' sebagai pembatas):

mshta vbscript:Execute("msgbox ""Hello World"":close")

Karena berbasis ie, mungkin akan terpengaruh oleh beberapa pembatasan gpo, jadi jika Anda memiliki pilihan powershell mungkin adalah taruhan yang lebih aman

Komentar (0)

Saya membutuhkan sesuatu yang mirip dengan ini hari ini. Karena saya tidak dapat menemukan solusi ketergantungan eksternal yang saya sukai karena saya bukan penggemar VBScript/Powershell, saya melanjutkan dan menulisnya:

https://github.com/cubiclesoft/messagebox-windows

Kotak pesan yang dihasilkannya adalah modal ke jendela konsol saat ini. Artinya, pengguna tidak dapat melakukan apa pun sampai mereka menutup dialog. Juga, kode balik dari panggilan MessageBox() dikembalikan ke pemanggil sehingga skrip dapat bereaksi terhadap tombol mana pun yang ditekan. Dan, tentu saja, ini mendukung berbagai opsi untuk API Win32 MessageBox().

Menambahkan eksekusi 80KB ke dalam campuran mungkin tidak semua orang suka. Namun, ini secara statis dihubungkan dengan runtime VC++ dan mendukung Unicode, yang menjelaskan mengapa file ini begitu besar mengingat sifat minimalis dari apa yang dilakukannya. Dan ada masalah kecil yaitu tidak dapat dengan mudah memasukkan baris baru dari baris perintah untuk menampilkan pesan multiline. Pada sisi positifnya, ini menampilkan dialog dalam waktu yang lebih singkat daripada solusi lain yang disajikan sejauh ini.

Tentu saja, jika ukuran file tidak menjadi masalah dan dialog menciptakan pengalaman pengguna yang terlalu "in your face &" dan/atau tidak memerlukan interaksi pengguna, saya juga menemukan proyek bagus ini:

https://www.paralint.com/projects/notifu/

Yang menampilkan balon popup di area notifikasi status layar menggunakan IUserNotification. Kelemahannya adalah bahwa Notifu yang dapat dieksekusi berjalan hanya sekitar 240KB. Contoh lain yang tidak menguntungkan bahwa COM menciptakan bloat yang tidak perlu dan membuat saya berharap ada API yang sederhana dan ringan untuk fitur tersebut.

Untuk sesuatu yang lintas platform, ada zenity. Sebagian besar untuk Linux tetapi ada juga port Mac dan Windows. Port Windows zenity berukuran lebih dari 1MB karena, yah, GTK cukup membengkak.

Komentar (2)