文章出处:http://www.cnblogs.com/winnxm/archive/2008/02/26/1082078.html
在项目中,需打包,每次使用打包工具很麻烦,直接在生成目录下使用exe就可以了,故编写一个.bat文件来处理就可以了,如下:
将生成文件BOMEXE.exe.
1@echo off
2echo Starting Make BOM update package
3echo -----------------------------------------------------
4echo 1. Create temp directory: temp
5rd /S /Q temp
6
7md temp
8md temp\config
9md temp\dll
10
11echo 2. Copy files
12
13copy config\AmountButtonInfo.xml temp\config\AmountButtonInfo.xml
14copy config\MessageDef.cfg.xml temp\config\MessageDef.cfg.xml
15copy config\NSICUState.xml temp\config\NSICUState.xml
16copy config\Template.xml temp\config\Template.xml
17copy config\UIFunctions.xml temp\config\UIFunctions.xml
18copy config\YktServerReturnCode.xml temp\config\YktServerReturnCode.xml
19copy config\TicketInfo.xml temp\config\TicketInfo.xml
20copy config\SysMaintenanceUI.xml temp\config\SysMaintenanceUI.xml
21copy Resources\13Line.bmp
22copy Resources\airportLine.bmp
23
24copy dll\*.dll temp\dll\
25
26copy *.dll temp\
27copy *.pdb temp\
28copy *.bpl temp\
29
30copy NewUI.exe temp\
31copy NewUI.exe.manifest temp\
32copy NewUI.exe.config temp\
33
34echo 3. Create Self Extract File (RAR)
35
36cd temp
37
38attrib -R /S /D
39winrar a -r -sfx BOMEXE
40
41echo 4. Prepare SFX Comments
42
43echo Silent=1 > sfx.txt
44echo Overwrite=1 >> sfx.txt
45rem echo Path=.\ >> sfx.txt
46
47echo 5. Add SFX Comments
48
49winrar c -zsfx.txt BOMEXE.exe
50
51copy BOMEXE.exe ..\
52
53echo 6. Update package completed!!
54
55echo on
56pause
57
2echo Starting Make BOM update package
3echo -----------------------------------------------------
4echo 1. Create temp directory: temp
5rd /S /Q temp
6
7md temp
8md temp\config
9md temp\dll
10
11echo 2. Copy files
12
13copy config\AmountButtonInfo.xml temp\config\AmountButtonInfo.xml
14copy config\MessageDef.cfg.xml temp\config\MessageDef.cfg.xml
15copy config\NSICUState.xml temp\config\NSICUState.xml
16copy config\Template.xml temp\config\Template.xml
17copy config\UIFunctions.xml temp\config\UIFunctions.xml
18copy config\YktServerReturnCode.xml temp\config\YktServerReturnCode.xml
19copy config\TicketInfo.xml temp\config\TicketInfo.xml
20copy config\SysMaintenanceUI.xml temp\config\SysMaintenanceUI.xml
21copy Resources\13Line.bmp
22copy Resources\airportLine.bmp
23
24copy dll\*.dll temp\dll\
25
26copy *.dll temp\
27copy *.pdb temp\
28copy *.bpl temp\
29
30copy NewUI.exe temp\
31copy NewUI.exe.manifest temp\
32copy NewUI.exe.config temp\
33
34echo 3. Create Self Extract File (RAR)
35
36cd temp
37
38attrib -R /S /D
39winrar a -r -sfx BOMEXE
40
41echo 4. Prepare SFX Comments
42
43echo Silent=1 > sfx.txt
44echo Overwrite=1 >> sfx.txt
45rem echo Path=.\ >> sfx.txt
46
47echo 5. Add SFX Comments
48
49winrar c -zsfx.txt BOMEXE.exe
50
51copy BOMEXE.exe ..\
52
53echo 6. Update package completed!!
54
55echo on
56pause
57
取名为MakeVersion.bat,以后直接点击就行了。
附上:命令行各参数用法
1用法: rar <命令> -<开关 1> -<开关 N> <压缩文件> <文件>
2 <@列表文件> <解压路径\>
3
4<命令>
5 a 添加文件到压缩文件
6 c 添加压缩文件注释
7 cf 添加文件注释
8 cw 写入压缩文件注释到文件
9 d 删除压缩文件中的文件
10 e 解压压缩文件到当前目录
11 f 刷新压缩文件中的文件
12 i[参数]=<串> 在压缩文件中查找字符串
13 k 锁定压缩文件
14 l[t,b] 列出压缩文件[技术信息,简洁]
15 m[f] 移动到压缩文件[仅对文件]
16 p 打印文件到标准输出设备
17 r 修复压缩文件
18 rc 重建丢失的卷
19 rn 重命名压缩文件
20 rr[N] 添加数据恢复记录
21 rv[N] 创建恢复卷
22 s[名字|-] 转换压缩文件为自解压格式或转换回压缩文件
23 t 测试压缩文件
24 u 更新压缩文件中的文件
25 v[t,b] 详细列出压缩文件[技术信息,简洁]
26 x 用绝对路径解压文件
27
28<开关>
29 - 停止扫描
30 ac 压缩或解压后清除存档属性
31 ad 添加压缩文件名到目标路径
32 ag[格式] 使用当前日期生成压缩文件名
33 ao 添加具有压缩属性的文件
34 ap<格式> 添加路径到压缩文件中
35 as 同步压缩文件内容
36 av 添加用户身份校验(仅注册版本可用)
37 av- 禁用用户身份校验
38 c- 禁用注释显示
39 cfg- 禁用读取配置
40 cl 名称转换为小写
41 cu 名称转换为大写
42 df 压缩后删除文件
43 dh 打开共享文件
44 ds 对固实压缩文件禁用名称排序
45 e[+]<属性> 设置文件排除和包括属性
46 ed 不添加空目录
47 en 不添加"压缩文件结束"标志
48 ep 从名称中排除路径
49 ep1 从名称中排除基本目录
50 ep2 展开为完整路径
51 ep3 扩展路径为包含盘符的完全路径
52 f 刷新文件
53 hp[密码] 同时加密文件数据和文件头
54 id[c,d,p,q] 禁用消息
55 ieml[属性] 用 E-mail 发送压缩文件
56 ierr 发送所有消息到标准错误设备
57 ilog[名称] 把错误写到日志文件(只有注册版本可用)
58 inul 禁用所有消息
59 ioff 完成一个操作后关闭 PC 电源
60 isnd 启用声音
61 k 锁定压缩文件
62 kb 保留损坏的已解压文件
63 m<0..5> 设置压缩级别(0-存储3-默认5-最大)
64 mc<参数> 设置高级压缩参数
65 md<大小> 以KB为单位的字典大小(64,128,256,512,1024,2048,4096 or A-G)
66 ms[ext;ext] 指定存储的文件类型
67 n<文件> 仅包含指定的文件
68 n@ 从标准输入设备读取文件名到包括
69 n@<列表> 在指定的文件列表包括文件
70 o+ 覆盖已存在文件
71 o- 不覆盖已存在文件
72 oc 设置 NTFS 压缩属性
73 os 保存 NTFS 流
74 ow 保存或恢复文件所有者和组
75 p[密码] 设置密码
76 p- 不询问密码
77 r 递归子目录
78 r0 仅递归通配符名称的子目录
79 ri<P>[:<S>] 设置优先级(0-默认,1-最小..15-最大)和以毫秒为单位的休眠时间
80 rr[N] 添加数据恢复记录
81 rv[N] 创建恢复卷
82 s[<N>,v[-],e] 创建固实压缩文件
83 s- 禁用固实压缩文件
84 sfx[名称] 创建自解压压缩文件
85 st[名称] 从标准输入设备读取数据(stdin)
86 t 压缩后测试文件
87 ta<日期> 添加日期 <日期> 后修改的文件,日期格式 YYYYMMDDHHMMSS
88 tb<日期> 添加日期 <日期> 前修改的文件,日期格式 YYYYMMDDHHMMSS
89 tk 保留原始压缩文件时间
90 tl 设置压缩文件时间为最新文件时间
91 tn<时间> 添加 <时间> 以后的文件
92 to<时间> 添加 <时间> 以前的文件
93 ts<m,c,a>[N] 保存或恢复文件时间(修改,创建,访问)
94 u 更新文件
95 v 自动检测创建卷的大小或者列出所有的卷
96 v<大小>[k,b] 创建卷大小=<大小>*1000 [*1024, *1]
97 vd 创建容量前清除磁盘内容
98 ver[n] 文件版本控制
99 vn 使用旧风格的卷命名方案
100 vp 每卷之前暂停
101 w<路径> 指定工作目录
102 x<文件> 排除指定的文件
103 x@ 从标准输入设备读取要排除的文件名
104 x@<列表> 排除指定列表文件中的文件
105 y 假设对全部询问都回答是
106 z<文件> 从文件读取压缩文件注释
107
108
109
110举个例子:
111
1121. 建立一个批处理文件,里头起作用的只有1行:)
113
114===================================================
115
116BackFav.bat(名字可以随便起)文件内容:
117
118REM 这个批处理文件是用来自动备份我的收藏夹
119REM WinRAR <命令> -<开关1> -<开关N> <压缩文件> <文件> <@列表文件> <解压路径\>
120"D:\Program Files\WinRAR\WinRAR.exe" a -as -r -sfx -zsfxpara.txt -EP1 "d:\my documents\Favorites.exe" "%USERPROFILE%\Favorites"
121
122===================================================
123
124参数说明:
125
126a: 添加指定的文件(源目录,这里是"%USERPROFILE%\Favorites")和文件夹到压缩文件(目标文件,这里是"d:\my documents\Favorites.exe")中。
127
128-as: 这是一个开关,指添加方式是“同步压缩文件内容”
129
130-r: 表示“包含子文件夹”
131
132-sfx: 表示建立的是一个自解压文件
133
134-zsfxpara.txt: 从文件sfxpara.txt读取压缩文件注释,这注释有什么用后面解释
135
136-ep1: 表示不把路径%USERPROFILE%保存在压缩文件中
137
138
139
1402. 注释文件的作用
141
142建立压缩文件的时候不光要考虑压缩那些文件,还要考虑怎么解压缩。通过注释文件可以向压缩包传递许多有用的信息。
143
144sfxpara.txt内容:
145
146PATH=%USERPROFILE%\
147Silent=1
148
149
2 <@列表文件> <解压路径\>
3
4<命令>
5 a 添加文件到压缩文件
6 c 添加压缩文件注释
7 cf 添加文件注释
8 cw 写入压缩文件注释到文件
9 d 删除压缩文件中的文件
10 e 解压压缩文件到当前目录
11 f 刷新压缩文件中的文件
12 i[参数]=<串> 在压缩文件中查找字符串
13 k 锁定压缩文件
14 l[t,b] 列出压缩文件[技术信息,简洁]
15 m[f] 移动到压缩文件[仅对文件]
16 p 打印文件到标准输出设备
17 r 修复压缩文件
18 rc 重建丢失的卷
19 rn 重命名压缩文件
20 rr[N] 添加数据恢复记录
21 rv[N] 创建恢复卷
22 s[名字|-] 转换压缩文件为自解压格式或转换回压缩文件
23 t 测试压缩文件
24 u 更新压缩文件中的文件
25 v[t,b] 详细列出压缩文件[技术信息,简洁]
26 x 用绝对路径解压文件
27
28<开关>
29 - 停止扫描
30 ac 压缩或解压后清除存档属性
31 ad 添加压缩文件名到目标路径
32 ag[格式] 使用当前日期生成压缩文件名
33 ao 添加具有压缩属性的文件
34 ap<格式> 添加路径到压缩文件中
35 as 同步压缩文件内容
36 av 添加用户身份校验(仅注册版本可用)
37 av- 禁用用户身份校验
38 c- 禁用注释显示
39 cfg- 禁用读取配置
40 cl 名称转换为小写
41 cu 名称转换为大写
42 df 压缩后删除文件
43 dh 打开共享文件
44 ds 对固实压缩文件禁用名称排序
45 e[+]<属性> 设置文件排除和包括属性
46 ed 不添加空目录
47 en 不添加"压缩文件结束"标志
48 ep 从名称中排除路径
49 ep1 从名称中排除基本目录
50 ep2 展开为完整路径
51 ep3 扩展路径为包含盘符的完全路径
52 f 刷新文件
53 hp[密码] 同时加密文件数据和文件头
54 id[c,d,p,q] 禁用消息
55 ieml[属性] 用 E-mail 发送压缩文件
56 ierr 发送所有消息到标准错误设备
57 ilog[名称] 把错误写到日志文件(只有注册版本可用)
58 inul 禁用所有消息
59 ioff 完成一个操作后关闭 PC 电源
60 isnd 启用声音
61 k 锁定压缩文件
62 kb 保留损坏的已解压文件
63 m<0..5> 设置压缩级别(0-存储3-默认5-最大)
64 mc<参数> 设置高级压缩参数
65 md<大小> 以KB为单位的字典大小(64,128,256,512,1024,2048,4096 or A-G)
66 ms[ext;ext] 指定存储的文件类型
67 n<文件> 仅包含指定的文件
68 n@ 从标准输入设备读取文件名到包括
69 n@<列表> 在指定的文件列表包括文件
70 o+ 覆盖已存在文件
71 o- 不覆盖已存在文件
72 oc 设置 NTFS 压缩属性
73 os 保存 NTFS 流
74 ow 保存或恢复文件所有者和组
75 p[密码] 设置密码
76 p- 不询问密码
77 r 递归子目录
78 r0 仅递归通配符名称的子目录
79 ri<P>[:<S>] 设置优先级(0-默认,1-最小..15-最大)和以毫秒为单位的休眠时间
80 rr[N] 添加数据恢复记录
81 rv[N] 创建恢复卷
82 s[<N>,v[-],e] 创建固实压缩文件
83 s- 禁用固实压缩文件
84 sfx[名称] 创建自解压压缩文件
85 st[名称] 从标准输入设备读取数据(stdin)
86 t 压缩后测试文件
87 ta<日期> 添加日期 <日期> 后修改的文件,日期格式 YYYYMMDDHHMMSS
88 tb<日期> 添加日期 <日期> 前修改的文件,日期格式 YYYYMMDDHHMMSS
89 tk 保留原始压缩文件时间
90 tl 设置压缩文件时间为最新文件时间
91 tn<时间> 添加 <时间> 以后的文件
92 to<时间> 添加 <时间> 以前的文件
93 ts<m,c,a>[N] 保存或恢复文件时间(修改,创建,访问)
94 u 更新文件
95 v 自动检测创建卷的大小或者列出所有的卷
96 v<大小>[k,b] 创建卷大小=<大小>*1000 [*1024, *1]
97 vd 创建容量前清除磁盘内容
98 ver[n] 文件版本控制
99 vn 使用旧风格的卷命名方案
100 vp 每卷之前暂停
101 w<路径> 指定工作目录
102 x<文件> 排除指定的文件
103 x@ 从标准输入设备读取要排除的文件名
104 x@<列表> 排除指定列表文件中的文件
105 y 假设对全部询问都回答是
106 z<文件> 从文件读取压缩文件注释
107
108
109
110举个例子:
111
1121. 建立一个批处理文件,里头起作用的只有1行:)
113
114===================================================
115
116BackFav.bat(名字可以随便起)文件内容:
117
118REM 这个批处理文件是用来自动备份我的收藏夹
119REM WinRAR <命令> -<开关1> -<开关N> <压缩文件> <文件> <@列表文件> <解压路径\>
120"D:\Program Files\WinRAR\WinRAR.exe" a -as -r -sfx -zsfxpara.txt -EP1 "d:\my documents\Favorites.exe" "%USERPROFILE%\Favorites"
121
122===================================================
123
124参数说明:
125
126a: 添加指定的文件(源目录,这里是"%USERPROFILE%\Favorites")和文件夹到压缩文件(目标文件,这里是"d:\my documents\Favorites.exe")中。
127
128-as: 这是一个开关,指添加方式是“同步压缩文件内容”
129
130-r: 表示“包含子文件夹”
131
132-sfx: 表示建立的是一个自解压文件
133
134-zsfxpara.txt: 从文件sfxpara.txt读取压缩文件注释,这注释有什么用后面解释
135
136-ep1: 表示不把路径%USERPROFILE%保存在压缩文件中
137
138
139
1402. 注释文件的作用
141
142建立压缩文件的时候不光要考虑压缩那些文件,还要考虑怎么解压缩。通过注释文件可以向压缩包传递许多有用的信息。
143
144sfxpara.txt内容:
145
146PATH=%USERPROFILE%\
147Silent=1
148
149