我尝试使用javascript运行bat文件。我尝试过使用PowerShell但它似乎没有正常工作。这是我试过的代码:
var oShell = WScript.CreateObject("WScript.Shell");
oShell.Exec("D:");
oShell.Exec("cd dir");
oShell.Exec("start user.bat");
我也试过了:
var oShell = WScript.CreateObject("WScript.Shell");
oShell.Exec("start D:\dir\user.bat");
有时会运行,有时我会收到这些错误"预期的十六进制数字","访问被拒绝"。 我真的很困惑。我尝试做的就是从javascript文件中执行bat文件。
任何人都知道如何做到这一点?谢谢!
答案 0 :(得分:3)
首先,JavaScript没有任何操作系统服务。所以你真的指的是恰好用JavaScript编写的Windows脚本宿主(WSH)脚本。
其次,let foo = bar
不是可执行文件,而是内置于start
的命令。
由于混乱不堪,听起来您想要从WSH脚本执行shell脚本(批处理文件)。最简单的方法是这样的(这与你已经尝试过的有点接近):
cmd.exe
要创建var wshShell = new ActiveXObject("WScript.Shell");
wshShell.Run("D:\\dir\\user.bat");
COM对象引用(progid WshShell
),请使用WScript.Shell
关键字和new
构造函数。此外,您需要在JavaScript字符串中加倍反斜杠(ActiveXObject
),因为\
会转义JavaScript字符串中的字符。
答案 1 :(得分:0)
另外,请检查以下版本可能有帮助;
var runnableScript = exec('path_to.bat',
(error, stdout, stderr) => {
console.log(stdout);
console.log(stderr);
if (error !== null) {
console.log(`exec error: ${error}`);
}
});