Hướng dẫn how do you run a batch file in javascript? - làm thế nào để bạn chạy một tập tin hàng loạt trong 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 do you run a batch file in javascript? - làm thế nào để bạn chạy một tập tin hàng loạt trong 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 do you run a batch file in javascript? - làm thế nào để bạn chạy một tập tin hàng loạt trong 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 do you run a batch file in javascript? - làm thế nào để bạn chạy một tập tin hàng loạt trong 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 do you run a batch file in javascript? - làm thế nào để bạn chạy một tập tin hàng loạt trong javascript?
Hi vọng điêu nay co ich!

Nhân Viên

Xếp hạng: #550

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: #550

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 cách nào để chạy một tập lệnh hàng loạt?

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 thế nào để bạn chạy một lô trong java?

Thay vì thực hiện một truy vấn duy nhất, chúng tôi có thể thực hiện một lô (nhóm) truy vấn ...
Tải lớp trình điều khiển ..
Tạo kết nối ..
Tạo tuyên bố ..
Thêm truy vấn trong đợt ..
Thực hiện lô ..
Đóng kết nối..

Làm cách nào để bắt đầu một tập tin hàng loạt?

Để tạo tệp Batch Windows, hãy làm theo các bước sau: Mở tệp văn bản, chẳng hạn như tài liệu Notepad hoặc WordPad.Thêm các lệnh của bạn, bắt đầu bằng @echo [TẮT], theo sau, mỗi dòng trong một dòng mới, tiêu đề [Tiêu đề của tập lệnh hàng loạt của bạn], Echo [dòng đầu tiên] và tạm dừng.Lưu tệp của bạn với dơi mở rộng tệp, ví dụ, kiểm tra.