我需要一个包含所有参数的数组,例如gui.App.argv中的值 是否包含一些函数来解析它?
function openfile(cmdline){
console.log('command line: ' + cmdline);
}
openfile(gui.App.argv); //my file.txt, my file.txt (this is what I need)
gui.App.on('open', function(cmdline) {
openfile(cmdline); //app.exe --original-process-start-time=13049249391168190 "my file.txt" "my file2.txt"
});
答案 0 :(得分:1)
我刚遇到同样的问题,这就是我如何解决它:
// Listen to `open` event
gui.App.on('open', function (cmdline) {
// Break out the params from the command line
var arr = /(.*)--original-process-start-time\=(\d+)(.*)/.exec(cmdline);
// Get the last match and split on spaces
var params = arr.pop().split(' ');
console.log('Array of parameters', params);
});
只要他们不改变事件的输出结构(即 - original-process-start-time 标志),这将有效。 但如果他们这样做,我会考虑使用 process.execPath 这样做
答案 1 :(得分:1)
我的解决方案:
1.用“& nbsp;”之类的想法替换引号中的所有空格。 (HTML空间)。
2.按空格分割字符串。
3.替换“& nbsp;”按空间。
gui.App.on('open', function(cmdline) {
cmdline = cmdline.replace(/"([^"]+)"/g, function(a) {
return a.replace(/\s/g, " ");
}).split(' ');
for (var i = 0, length = cmdline.length, arg = '', args = []; i < length; ++i) {
arg = cmdline[i].replace(/ /g, ' ');
// Filter by exe file and exe args.
if (arg === '"' + process.execPath + '"' || arg.search(/^\-\-/) === 0) continue;
args.push(arg);
}
console.log(args);
});
在0.14.x,0.15.x上工作。