-
Notifications
You must be signed in to change notification settings - Fork 2
/
Package.ahk
106 lines (85 loc) · 2.75 KB
/
Package.ahk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 一键打包
;
; 2016/12/09
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#Persistent
#SingleInstance force
#NoEnv
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 用户需更改 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Config := {}
Config.AppName := "CmdMarkdownBackup"
Config.AppIcon := A_ScriptDir . "\source\resources\Cmd.ico"
Config.LoaderIcon := A_ScriptDir . "\source\resources\Loader.ico"
Config.WinRarPath := "C:\Program Files\WinRAR"
Config.Ahk2ExePath := "C:\Program Files\AutoHotkey\Compiler"
for key, value in Config
{
if (key = "AppName")
continue
IfNotExist, %value%
{
MsgBox, %key% 不存在,当前值为 %value%
ExitApp
}
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 环境变量 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SetWorkingDir, %A_ScriptDir%\source\
WinRarPath := Config["WinRarPath"]
Ahk2ExePath := Config["Ahk2ExePath"]
EnvGet, Paths, PATH
EnvSet, PATH, %WinRarPath%`;%Ahk2ExePath%`;%Paths%
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 打包流程 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 将应用程序由ahk编译为exe
Loop, %A_WorkingDir%\scripts\*.ahk
{
StringReplace, ExeName, A_LoopFileFullPath, .ahk, .exe
CompileCmd := "Ahk2Exe.exe"
CompileCmd .= " /in "
CompileCmd .= A_LoopFileFullPath
CompileCmd .= " /out "
CompileCmd .= ExeName
CompileCmd .= " /icon "
CompileCmd .= Config["AppIcon"]
; MsgBox, %CompileCmd%
RunWait, cmd /c %CompileCmd%,, Hide
}
; 将Loader.ahk编译为Loader.exe
Loop, %A_WorkingDir%\Loader.ahk
{
StringReplace, ExeName, A_LoopFileFullPath, .ahk, .exe
CompileCmd := "Ahk2Exe.exe"
CompileCmd .= " /in "
CompileCmd .= A_LoopFileFullPath
CompileCmd .= " /out "
CompileCmd .= ExeName
CompileCmd .= " /icon "
CompileCmd .= Config["LoaderIcon"]
; MsgBox, %CompileCmd%
RunWait, cmd /c %CompileCmd%,, Hide
}
; 一键打包
AppName := Config["AppName"]
if A_Is64bitOS
AppName .= "-x64.exe"
else
AppName .= "-x86.exe"
PackageCmd := "WinRAR a -r -sfx " ; WinRAR SFX
PackageCmd .= "-x*.ahk " ; Exclude *.ahk
PackageCmd .= "-z..\conf\xfs.conf " ; WinRAR config file
PackageCmd .= "-iicon" ; Icon
PackageCmd .= Config["AppIcon"]
PackageCmd .= " ..\release\" ; Output
PackageCmd .= AppName
PackageCmd .= " *" ; Source files
; MsgBox, %PackageCmd%
RunWait, cmd /c %PackageCmd%,, Hide
MsgBox, 打包完成,应用程序位于release目录
ExitApp