# aardio 范例: 必读：进程启动命令行转义规则



```aardio
//必读：进程启动命令行转义规则
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 ] )

//构造命令行参数: https://www.aardio.com/zh-cn/docs/library-guide/std/process/process.html#cmdArgs
```

