资源合并批处理 v2

此前的项目结构比较简单,就没有用 webpack 打包。
直接引用的 ,数量较多,文件本身倒是不大。
从减少连接请求数的角度考虑,打算把这些静态资源简单合并一下。
批处理核心就是用 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

发表评论

邮箱地址不会被公开。 必填项已用*标注