Hướng dẫn how to execute bat file from javascript - cách thực thi tệp bat từ javascript

5

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi đang cố gắng chạy một tệp Bat bằng JavaScript. Tôi đã thử sử dụng PowerShell nhưng dường như nó không hoạt động đúng. Đây là mã tôi đã thử:

var oShell = WScript.CreateObject("WScript.Shell");
oShell.Exec("D:");
oShell.Exec("cd dir");
oShell.Exec("start user.bat");

Tôi cũng đã thử điều đó:

var oShell = WScript.CreateObject("WScript.Shell");
oShell.Exec("start D:\dir\user.bat");

Đôi khi nó chạy, đôi khi tôi nhận được những lỗi đó "DIADECIMAL Digit dự kiến", "Truy cập bị từ chối". Tôi thực sự bối rối. Tất cả những gì tôi đang cố gắng làm là thực thi một tệp BAT từ tệp JavaScript.

Bất cứ ai có bất kỳ ý tưởng làm thế nào để làm điều đó? Cảm ơn bạn!

Hướng dẫn how to execute bat file from javascript - cách thực thi tệp bat từ javascript

Bill_Stewart

21.6K4 Huy hiệu vàng47 Huy hiệu bạc60 Huy hiệu Đồng4 gold badges47 silver badges60 bronze badges

Đã hỏi ngày 23 tháng 3 năm 2017 lúc 20:04Mar 23, 2017 at 20:04

Đầu tiên, JavaScript không có bất kỳ dịch vụ hệ điều hành nào. Vì vậy, bạn thực sự đang đề cập đến một tập lệnh Windows Script (WSH) tình cờ được viết bằng JavaScript.

Thứ hai, start không phải là một lệnh thực thi mà là một lệnh được xây dựng thành cmd.exe.

Với sự nhầm lẫn ngoài đường, có vẻ như bạn muốn thực thi tập lệnh shell (tệp hàng loạt) từ tập lệnh WSH. Cách đơn giản nhất là như thế này (điều này có phần gần với những gì bạn đã thử rồi):

var wshShell = new ActiveXObject("WScript.Shell");
wshShell.Run("D:\\dir\\user.bat");

Để tạo tham chiếu đối tượng WshShell COM (Progid WScript.Shell), hãy sử dụng từ khóa new và trình xây dựng ActiveXObject. Ngoài ra, bạn cần tăng gấp đôi dấu gạch chéo ngược của mình (____10) trong các chuỗi JavaScript vì

var oShell = WScript.CreateObject("WScript.Shell");
oShell.Exec("start D:\dir\user.bat");
0 thoát khỏi các ký tự trong chuỗi JavaScript.

Đã trả lời ngày 23 tháng 3 năm 2017 lúc 20:16Mar 23, 2017 at 20:16

Hướng dẫn how to execute bat file from javascript - cách thực thi tệp bat từ javascript

Bill_StewartBill_StewartBill_Stewart

21.6K4 Huy hiệu vàng47 Huy hiệu bạc60 Huy hiệu Đồng4 gold badges47 silver badges60 bronze badges

4

Đã hỏi ngày 23 tháng 3 năm 2017 lúc 20:04

var runnableScript = exec('path_to.bat',
    (error, stdout, stderr) => {
        console.log(stdout);
        console.log(stderr);
        if (error !== null) {
            console.log(`exec error: ${error}`);
        }
    });

Đầu tiên, JavaScript không có bất kỳ dịch vụ hệ điều hành nào. Vì vậy, bạn thực sự đang đề cập đến một tập lệnh Windows Script (WSH) tình cờ được viết bằng JavaScript.Oct 6, 2019 at 15:38

Hướng dẫn how to execute bat file from javascript - cách thực thi tệp bat từ javascript

1

Xin chào Somesh,

Điều này là không thể. Vì lý do bảo mật, trình duyệt web không thể chạy tệp trên máy tính cục bộ. Hãy tưởng tượng nếu điều đó là có thể, một trang web độc hại có thể chiếm lấy máy tính của bạn!

Xin chào Somesh,

Điều này là không thể. Vì lý do bảo mật, trình duyệt web không thể chạy tệp trên máy tính cục bộ. Hãy tưởng tượng nếu điều đó là có thể, một trang web độc hại có thể chiếm lấy máy tính của bạn!

Tôi nghĩ rằng bất cứ điều gì bạn đang lên kế hoạch là không lý tưởng! (vì tất cả các Kilian đã nói)

Nhưng nếu điều này rất quan trọng cho sự thành công của một dự án của tôi, có lẽ tôi sẽ thử thực hiện một số điều khiển ActiveX và thậm chí điều này sẽ chỉ hoạt động trong Internet Explorer (ngay cả Edge sẽ không chạy chúng).

Hướng dẫn how to execute bat file from javascript - cách thực thi tệp bat từ javascript
Hi vọng điêu nay co ich!

Nhân Viên

Xếp hạng: #549

Một lần nữa, không lý tưởng- nhưng một giải pháp:

Xin chào Somesh,

Điều này là không thể. Vì lý do bảo mật, trình duyệt web không thể chạy tệp trên máy tính cục bộ. Hãy tưởng tượng nếu điều đó là có thể, một trang web độc hại có thể chiếm lấy máy tính của bạn!

Tôi nghĩ rằng bất cứ điều gì bạn đang lên kế hoạch là không lý tưởng! (vì tất cả các Kilian đã nói)

Nhưng nếu điều này rất quan trọng cho sự thành công của một dự án của tôi, có lẽ tôi sẽ thử thực hiện một số điều khiển ActiveX và thậm chí điều này sẽ chỉ hoạt động trong Internet Explorer (ngay cả Edge sẽ không chạy chúng).

Hi vọng điêu nay co ich!

Nhân Viên

Xếp hạng: #549

Một lần nữa, không lý tưởng- nhưng một giải pháp:

Bạn có thể lưu trữ BAT hoặc một exe nhỏ dưới dạng tài nguyên trong ứng dụng của bạn và nút mà người dùng nhấp sẽ tải xuống? Sau đó, tất cả những gì họ sẽ phải làm là mở Exe hoặc Bat đã tải xuống để chạy (một hoặc hai lần nhấp thêm?)
function myFunction(){
   WshShell = new ActiveXObject("Wscript.Shell"); //Create WScript Object
   WshShell.run("d://temp/testJS.bat"); // Please change the path and file name with your relevant available path in client system. This code can be used to execute .exe file as well
}

Tôi có ý này!

Hãy thử giải pháp sau để thực thi tệp BAT bằng ActiveX chỉ trên IE,

Làm cách nào để chạy một tập tin hàng loạt từ HTML hoặc JavaScript?

Chỉ cần tạo một tệp hàng loạt và lưu ở vị trí nơi có tệp HTML của bạn. Thẻ neo này sẽ thực thi tệp hàng loạt (BAT). Sau khi nhấp vào liên kết, bạn sẽ nhận được cửa sổ nhắc mở/lưu/đóng, nếu bạn sẽ nhấp vào mở thì tệp Batch sẽ được thực thi.create a batch file and save in the location where your html file is there. this anchor tag will execute the (test. bat) batch file. After clicking on the link , you will get the window prompting to open/save/close, if you will click on open then batch file will be executed.

Làm thế nào để bạn thực hiện một tệp bat?

Thực hiện các tập tin hàng loạt..
Bước 1 - Mở dấu nhắc lệnh (cmd.exe) ..
Bước 2 - Đi đến vị trí nơi.dơi hoặc.Tệp CMD được lưu trữ ..
Bước 3 - Viết tên của tệp như được hiển thị trong hình ảnh sau và nhấn nút Enter để thực thi tệp hàng loạt ..

Làm cách nào để chạy một tập tin Bat từ bất cứ đâu?

Đường dẫn nơi đặt tệp BAT của bạn nên được nối vào biến đường dẫn.Trong ví dụ của bạn, nối thêm "C: \;"Trong giá trị cho biến môi trường đường dẫn.Sau đó, bạn có thể thực hiện mybatch.bat từ bất cứ đâu trên dòng lệnh.execute MyBatch. bat from anywhere on the command line.

Làm cách nào để chạy tệp Batch Node JS?

Hãy xem quá trình hoàn chỉnh từng bước ..
input.txt.....
bash.sh #!/bin/bash input = `cat -` echo" input: $ input ".
Bước 2: Xác định vị trí thư mục này vào thiết bị đầu cuối và nhập lệnh npm init -Y.....
Bước 3: Cài đặt các mô -đun quy trình trẻ em bên trong dự án bằng cách sử dụng nút lệnh sau cài đặt Child_Process ..