
浅谈批处理脚本的编写
├—1.效率篇
│ ├—1.1 外部命令、goto、call 的调用次数
│ │ ├—1.1.1 外部命令启动慢、运行快,所以不宜频繁启动
│ │ ├—1.1.2 goto、call、exit 都是比较耗时的
│ │ ├—1.1.3 管道至少开启两个新进程
│ │ └—1.1.4 for /f 从命令获取输入时必然启用 cmd 进程
│ ├—1.2 变量尽量少
│ ├—1.3 算法思想(重点)
│ │ ├—1.3.1 将循环次数由指数级变为算术级
│ │ └—1.3.2 将加法思路变为减法思路
│ └—1.4 影响环境的操作尽量少
├—2 简洁篇
│ ├—2.1 能合并的就合并
│ ├—2.2 学会使用参数
│ ├—2.3 提高代码的重复利用率
│ │ ├—2.3.1 内联函数
│ │ └—2.3.2 模块化
│ └—2.4 挖掘命令的“批处理”能力
├—3通用性篇
│ ├—3.1 要考虑环境的差别
│ ├—3.2 要考虑输入中含有特殊字符
│ └—3.3 考虑到命令与输入的细节特征
├—4 绿色篇
│ ├—4.1 避免以注册表为备忘录
│ ├—4.2 不要大肆创建新文件、文件夹
│ ├—4.3 避免生成与外部命令同名的可执行文件
│ ├—4.4 变量避免与系统环境变量重名
│ └—4.5 注意剥夺新进程的继承权
└—5可读性篇
├—5.1 外观
│ ├—5.1.1 缩进排版
│ └—5.1.2 嵌套层次明晰
├—5.2 用注释介绍思路
└—5.3 少用不常见的写法
├—1.效率篇
│ ├—1.1 外部命令、goto、call 的调用次数
│ │ ├—1.1.1 外部命令启动慢、运行快,所以不宜频繁启动
│ │ ├—1.1.2 goto、call、exit 都是比较耗时的
│ │ ├—1.1.3 管道至少开启两个新进程
│ │ └—1.1.4 for /f 从命令获取输入时必然启用 cmd 进程
│ ├—1.2 变量尽量少
│ ├—1.3 算法思想(重点)
│ │ ├—1.3.1 将循环次数由指数级变为算术级
│ │ └—1.3.2 将加法思路变为减法思路
│ └—1.4 影响环境的操作尽量少
├—2 简洁篇
│ ├—2.1 能合并的就合并
│ ├—2.2 学会使用参数
│ ├—2.3 提高代码的重复利用率
│ │ ├—2.3.1 内联函数
│ │ └—2.3.2 模块化
│ └—2.4 挖掘命令的“批处理”能力
├—3通用性篇
│ ├—3.1 要考虑环境的差别
│ ├—3.2 要考虑输入中含有特殊字符
│ └—3.3 考虑到命令与输入的细节特征
├—4 绿色篇
│ ├—4.1 避免以注册表为备忘录
│ ├—4.2 不要大肆创建新文件、文件夹
│ ├—4.3 避免生成与外部命令同名的可执行文件
│ ├—4.4 变量避免与系统环境变量重名
│ └—4.5 注意剥夺新进程的继承权
└—5可读性篇
├—5.1 外观
│ ├—5.1.1 缩进排版
│ └—5.1.2 嵌套层次明晰
├—5.2 用注释介绍思路
└—5.3 少用不常见的写法
