我正在尝试使用网络路径在Electron中运行批处理文件。我正在使用的功能是:
function cpSixHundred() {
require('child_process').exec("file:\\\\LSC-SA-NAS1\\Departments\\Information Technology\\Software\\Zebra Label Printer Reset Counters", function(err, stdout, stderr) {
if (err) {
// Ooops.
// console.log(stderr);
return console.log(err);
}
// Done.
console.log(stdout);
});
}
我得到的错误是:
Error: Command failed: \\LSC-SA-NAS1\Departments\Information
Technology\Software\Zebra Label Printer Reset Counterstest.bat
'\\LSC-SA-NAS1\Departments\Information' is not recognized as an internal or
external command,
operable program or batch file.
据我所知,它不喜欢网络路径中的空间。我尝试过多种引号和字符串连接组合,但仍然没有运气。
提前谢谢你。
答案 0 :(得分:1)
您需要使用单引号字符串并在文件路径周围加上双引号。
这个例子来自节点js文档:
https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback
exec('"/path/to/test file/test.sh" arg1 arg2');
//Double quotes are used so that the space in the path is not interpreted as
//multiple arguments
编辑:
如果可以的话,避免在函数调用中要求模块,它可能会减慢你的应用程序速度,而且大部分时间都是不好的做法。
// put all required modules on top of your page
var childProcess = require('child_process');
function cpSixHundred() {
childProcess.exec('"file:\\\\LSC-SA-NAS1\\Departments\\Information Technology\\Software\\Zebra Label Printer Reset Counters"', function(err, stdout, stderr) {
if (err) {
// Ooops.
// console.log(stderr);
return console.log(err);
}
// Done.
console.log(stdout);
});
}