脚本文件内自变设置

某些时候需要记录上次运行的数据,比如上次窗口的位置,主要思路:

运行的脚本可以读写自身文件内

然后读写特别标记的注释块就行

ini当然可以,但是有点小洁癖的话,可以玩下以下代码,其实去掉无关的部分代码不算多,编辑器内还能享受注释折叠

脚本文件内自变设置

这个设置注释块可以放在任何位置,似乎可以用正则优化一下。

如果需求不高,比如只修改脚本第一行的变量内容,代码会更简单。

;脚本文件内自变设置 By 枫丹白露 2018.04.26
/*设置开始
a=1
b=哈
*/
FileEncoding, UTF-8

FileRead,oFile,%A_ScriptName%
posS:=InStr(oFile,"/*设置开始")
posE:=InStr(oFile,"*/",posS)

;设置段之前
oFile1:=SubStr(oFile,1,posS-1)
;设置段
oFile2:=SubStr(oFile,posS,posE-2-posS)
;设置段之后
oFile3:=SubStr(oFile,posE)

;把设置读进关联数组
oCon:={}
loop,Parse,oFile2,`n,`r
{
s:=StrSplit(A_LoopField,"=")
oCon[s[1]]:=s[2]
}

MsgBox, 65, 提示, % oCon.a "次运行,继续么?`r`n" oCon.b
IfMsgBox, Cancel
 Exit

;修改值
oCon.a+=1
oCon.b.="哈"

;保存文件
FileMove,%A_ScriptName%,%A_ScriptName%_old
myF:=FileOpen(A_ScriptName,"w")
oFile := oFile1

for k,v in oCon
{
oFile .= v?k "=" v "`r`n" :k "`r`n"
}

oFile .= oFile3

myF.Write(oFile)
myF.Close
Reload

脚本文件内自变设置脚本文件内自变设置

给TA捐赠
共{{data.count}}人
人已捐赠
其他

文本交互替换

2018-4-26 16:56:53

其他

[RunAnyCtrl]AHK获取CMD命令结果三种方法

2018-4-29 6:46:47

3 条回复 A文章作者 M管理员
  1. dome

    ❗ 封装之后呢。。。这个设计也是蛮巧妙的!

    • aahk

      封装之后只好读写exe可执行文件了(有点类似于fSekrit的单文件设计)(所有设置都在exe文件里,exe到哪里设置就跟到哪里,最讨厌注册表了)。

      fSekrit是一款超小的便携式自身加密内容的记事本程序. 1、软件小巧,(最终大小会随你保存内容大小改变),特别适合U盘存储。 2、高强度加密,CBC 模式 256 位 AES,不使用未加密的临时文件。 3、将程序和加密内容合并成单独程序保存,不需任何其他程序。 注:这个东东非常适合于加密保存自己的一些私人和敏感信息

  2. 火冷

    直接修改脚本文本不是喜欢的方式,
    不想建文件,可以把信息存注册表,感觉也不错哈,不过换电脑信息会丢失 💡

个人中心
购物车
优惠劵
有新私信 私信列表
搜索