此前的项目结构比较简单,就没有用 webpack 打包。
直接引用的 js 和 css,数量较多,文件本身倒是不大。
从减少连接请求数的角度考虑,打算把这些静态资源简单合并一下。
批处理核心就是用 type
命令进行拼接,
并以空行作为分隔,避免可能的语法错误。
写完上篇《资源列表批处理 v4》回过头来看,显然还有许多不足。
同样通过引入变量与循环,应该能大量减少冗余代码。
额外需要动点脑筋的,则是如何环实现输出复数个文件。
思路首先是嵌套循环,其次需要解决(伪)数组及嵌套变量名问题。
最终 v2 成品如下:
::merge resource v2 @echo off setlocal enabledelayedexpansion ::config set m[1]o=_vendor.js set m[1]l=.\vendor\ set m[1]f=es6-promise.auto.min.js lodash.min.js vue.min.js vuex.min.js vue-router.min.js md5.min.js uuid.core.js element-ui.min.js jquery.min.js set m[2]o=_vendor.css set m[2]l=.\vendor\ set m[2]f=element-ui-reset.css element-ui.min.css set m[3]o=_inpage.js set m[3]l=.\script\ set m[3]f=wsid-auth-l10n.js wsid-auth-excs.js wsid-auth.js set m[4]o=_inpage.css set m[4]l=.\style\ set m[4]f=bootstrap-ao.css wsid-icon.css wsid-auth.css ::loop for /l %%n in (1,1,4) do ( set loc=!m[%%n]l! set out=!loc!!m[%%n]o! del !out! for %%a in (!m[%%n]f!) do ( type !loc!%%a >> !out! echo. >> !out! ) )
【相关资料】
0、Merge – zh3nya◃flickr(题图)
1、Populating Array in DOS◃superuser
2、Add a new line to a text file in MS-DOS◃stackoverflow