Proses ActiveXObject tidak kembali (shell)

Saya menjalankan skrip shell dari lingkungan JavaScript menggunakan ActiveXObject. Semuanya berfungsi dengan baik jika saya tidak menyertakan parameter apa pun dalam fungsi run:

var x = new ActiveXObject("WScript.Shell");
x.Run("%comspec% /K dir")
alert("I am here!")

Menurut dokumentasi, "Metode Jalankan juga menerima nilai Boolean sebagai parameter ketiga yang menentukan apakah skrip akan dijeda hingga program yang dipanggil selesai berjalan atau malah melanjutkan dengan perintah berikutnya dalam skrip. Jika nilai ini disetel ke False ( default), metode Run hanya mengeluarkan perintah untuk menjalankan program tetapi tidak memeriksa untuk memastikan bahwa program benar-benar berjalan. Jika parameter ketiga disetel ke True, skrip akan menunggu program selesai berjalan, kembalikan bilangan bulat kode keluar yang disediakan oleh program, lalu lanjutkan dengan baris skrip berikutnya."

Saya mencoba menggunakan keduanya

x.Run("%comspec% /K dir"), 1, True
alert("I am here!")

Dan

x.Run("%comspec% /K dir"), 1, False
alert("I am here!")

tapi kode saya selalu hang. Peringatan tidak pernah ditampilkan. Apa yang saya lakukan salah? (Saya perlu menggunakan argumen ketiga = true dalam kode saya) Terima kasih!


person Touloudou    schedule 28.05.2015    source sumber


Jawaban (1)


Anda harus memasukkan argumen dalam tanda kurung:

x.Run("%comspec% /K dir", 1, true);

Saat ini skrip Anda menggunakan beberapa operator koma. Mula-mula ia mengeksekusi metode Run, mengevaluasi 1, dan akhirnya memecah menjadi nama variabel yang tidak ditentukan (True). JS peka huruf besar-kecil.

person Teemu    schedule 28.05.2015
comment
Masalah diperbaiki! Saya menggunakan True, bukan true... Terima kasih! - person Touloudou; 28.05.2015