//必读:进程启动命令行转义规则 import console.int; import string.cmdline; import process; //自己拼接启动参数容易出错,举例: var path = "c:\x x x\" var prcs = process("xxx.exe",`/L ` + path); console.log("路径被空格错误地拆分为多个参数:",`/L ` + path) //小心地加上引号,仍然出错了 var prcs = process("xxx.exe",`/L "` + path + `"`) console.log("小心地加上引号,仍然出错了,看目标程序解析得到的参数多了引号"); //模拟参数解析 var argv = string.cmdline.argv(`xxx.exe /L "` + path + `"`); console.dump("看,最后面多了一个引号",argv.L) /* 如果指定多个启动参数(或一个字符串数组)以替代一个启动参数。 aardio 都会自动调用 string.args.join() 函数合并多参数并自动处理转义。 不用再考虑空格、引号这些带来的问题。 所以正确写法如下: */ var prcs = process("xxx.exe",`/L`,path); //或者:var prcs = process("xxx.exe",{ `/L`,path } ); //如果传单个文件路径参数,也要避免路径包含空格,所以最好放到数组里。 //process.execute("noted.exe",{ path })