;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; AHK版本:1.1.15.0.4 ; 脚本版本:1.0 ; 语言: 中文 ; 适用平台:Win7 ; 作者: 妖(aamii@qq.com) ; 脚本类型:实用小工具 ; 脚本功能:INI文件,按等号进行对齐 ; 使用方法:打开一个INI,按热键F9,(在试用前,请自行备份原文件) ; 唯一个可变参数是:LimitMax(左侧超过该长度时,该行不参与对齐),根据自己的喜好更改。 ; 该参数起限制作用,并非最终起作用的长度。 ; 已知缺陷: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Windo_等号对齐: ;用于windo菜单,此处换成热键,即是独立脚本。 Send,^a Send,^c CandySel=%Clipboard% Cando_等号对齐: ;用于candy菜单。 LimitMax:=80 ;左侧超过该长度时,该行不参与对齐,该数字可自行修改 MaxLen:=0 StrSpace:=" " Loop,% LimitMax+1 StrSpace .=" " Aligned:= loop, parse, CandySel, `n,`r ;首先求得左边最长的长度,以便向它看齐 { IfNotInString,A_loopfield,= ;本行没有等号,过 Continue ItemLeft :=RegExReplace(A_LoopField,"s*(.*?)s*=.*$","$1") ;本条目的 等号 左侧部分 ; ThisLen:=StrLen(regexreplace(ItemLeft,"[^x00-xff]","11")) ;本条左侧的长度 ThisLen:=DllCall("MSVCRT.DLLstrlen", "AStr", ItemLeft) ;本条左侧的长度 MaxLen:=( ThisLen > MaxLen And ThisLen MaxLen ) ;如果本条左侧大于最大长度,注意是最大长度,而不是LimitMax,则不参与对齐 { Aligned .= ItemLeft "= " Itemright "`r`n" Continue } Else { Aligned .= ItemLeft . SubStr( StrSpace, 1, MaxLen+2-ThisLen ) "= " Itemright "`r`n" ;该处给右侧等号后添加了一个空格,根据需求可删 } } Aligned:=RegExReplace(Aligned,"s*$","") ;顺便删除最后的空白行,可根据需求注释掉 clipboard := Aligned Sleep,100 Send ^v Return