0.7版本title formatting语法参考(翻译:蓝色网际)
字段
%fieldname% | 插入元数据字段名<fieldname> | %title% - 标题 %artist% - 作者、歌手 %album% - 专辑 %tracknumber% - 音轨序号 %comment% - 注释 %date% - 日期 |
%__fieldname% | 插入编码、技术信息 <fieldname> | %__bitrate% - 比特率 %__bitrate_dynamic% - 动态比特率 %__codec% - 编码格式 %__channels% - 声道 %__samplerate% - 采样率 %__bitspersample% - 采样位数 |
%_path% | 插入文件全名和路径 | |
%_path_raw% | 插入文件全名包括路径和协议 | |
%_filename% | 插入文件名不包括扩展名 | |
%_filename_ext% | 插入文件名包括扩展名 | |
%_directoryname% | 插入文件夹名 | |
%_subsong% | 插入子歌曲索引 | |
%_foobar2000_version% | 插入foobar2000版本字串 | |
%_length% | 插入歌曲长度信息 | |
%_length_seconds% | 插入歌曲长度信息(秒) |
特殊字段(播放列表)
%_isplaying% | 文件正在播放时返回1,否则返回空值 | |
%_ispaused% | 暂停时返回1,否则返回空值 | |
%_playlist_number% | 返回播放列表索引 | |
%_playlist_total% | 返回文件在播放列表里的序号 | |
%_playlist_name% | 返回播放列表名称包括指定的项 |
特殊字段 (状态栏, Windows 标题或复制命令)
%_time_elapsed% | 返回已播放用时 | |
%_time_remaining% | 返回剩余时间直到音轨结束 | |
%_time_total% | 返回音轨总长度 | |
%_time_elapsed_seconds% | 返回总用时(秒) | |
%_time_remaining_seconds% | 返回剩余时间(秒) | |
%_time_total_seconds% | 返回音轨总长度(秒) | |
%_ispaused% | 暂停时返回1,否则返回空值 |
- 当 %_length% / %_length_seconds% 从数据库获取数据时,%_time_total% / %_time_total_seconds% 从回放核心获取数据, 在一些不常见的例子里它们都是很可靠的。
- 所有 %...% 段会自动截断多行字串,如果你不想这样,请参考 $meta() 功能。
- 你可以在文件信息对话框里看到所有元数据 (%blah%) 和技术信息 (%__blah%) 。
颜色 (只对播放列表和状态栏有效)
XXXXXX | 设置文本颜色为 XXXXXX,XXXXXX 新文本颜色的十六进制格式; 会在选定的段里显示一个颜色 | |
XXXXXX|YYYYYY | 设置文本颜色,XXXXXX 显示未选定的段的颜色,而YYYYYY 显示选定段的颜色 | |
重置为默认颜色 |
向右对齐文本 (仅对播放列表和状态栏有效)
- 使用表格字符 (或"$char(9)")来指定向右对齐文本 (例如:track length)
函数
$abbr(x) | 插入x的缩写 | "$abbr(%album%)" - 把"Final Fantasy VI" 专辑名转化为"FFVI" |
$abbr(x,y) | 如果x字符大于y则插入缩写,否则插入全称 | $abbr(%album%,10) |
$add(x,y...) | 数学操作(x+y+...) | $add(%TRACKNUMBER%,$mul(%DISC%,100)) |
$and(x,y...) | 执行逻辑“与”操作。一般用在$if()类型函数里或其他逻辑操作 | |
$ansi(x) | 把x转换为系统代码页并返回。任何不存在于系统代码页的字符将会被移除或替换。对于批量更名文件非常有用,可以确保不支持Unidode软件的兼容性 | |
$blend(a,b,c,d) | 在颜色a和b里以c/d产生一个颜色 | $blend($rgb(0,0,0),$rgb(255,255,255),%_time_elapsed%,%_time_total%) |
$caps(x) | 把x的第一个字符转换为大写,其余字符为小写 | "$caps(blah BLAH)" -> "Blah Blah" |
$caps2(x) | 和$caps一样,但保留本身的大写字符 | "$caps2(blah BLAH)" -> "Blah BLAH" |
$char(x) | 插入Unicode字符序号x | "$char(3)" produces the character controlling color codes in playlist |
$crlf() | 插入换行代码。常用在多行脚本(例如:系统托盘工具提示) | $crlf() |
$cut(a,b) | 保留a字串左起第b个字符 | $cut(%title%,5) |
$directory(x), $directory(x,n) | 从文件路径里提取目录名,选项n为第n层目录 | $directory(%_path%,2) |
$div(x,y) | 数学操作(x÷y) | $div(%TRACKNUMBER%,100) |
$ext(x) | 从文件路径/文件名里提取扩展名 | $ext(%_path%) |
$filename(x) | 从完整路径里提取文件名 | $filename(%_path%) |
$fix_eol(x) | 扫描x中是否有换行符(CR/LF),如果发现了则截断并在末尾添加(...) |
|
$fix_eol(x,y) | 扫描x中是否有换行符(CR/LF),如果发现了则截断并在末尾添加y |
|
$greater(x,y) | 比较两个整数,看是否x>y。一般用在$if()类型函数里或其他逻辑操作 | $if($greater(%TRACKNUMBER%,100),$div(%TRACKNUMBER%,100),%DISC%) |
$hex(x) | 把十进制整数x转换为十六进制符号 | $hex(%_playlist_number%) |
$hex(x,y) | 把十进制整数x转换为十六进制符号,填充0到y个数 | $hex(%_playlist_number%,3) |
$if(a,b,c) | 如果a成立、存在则执行、显示a,否则执行、显示c | "$if(%artist%,%artist%,缺少歌手信息)" 当歌手信息存在时显示歌手名字,否则显示“缺少歌手信息” 。注意:"$if(a,a,)"等价于"[a]" (看这里 ) |
$if2(a,b) | 和$if(a,a,b)一样 | $if2(%title%,%_filename%) |
$if3(a,b,c,..) | 返回第一个非空项目 | |
$ifgreater(a,b,c,d) | 如果a包含b,显示、执行c,否则显示、执行d | |
$iflonger(a,b,c,d) | 如果字串a比b长,显示、执行c,否则显示、执行d | |
$info(x) | 返回x段名的技术信息,末尾标记不能被截断 | "$info(bitrate)" 和 "%__bitrate%" 一样 |
$insert(a,b,n) | 把a字串第n个字符之后的字符插入到b字串的后面 | |
$left(a,b) | 返回a左起的b个字符 | $left(%title%,5) |
$len(x) | 返回x字串长度 | $len(abc)返回3,$len(你好)返回2 |
$len2(x) | 返回x字串长度,双宽字符看作两个字符(参数设置/Display -> “双宽字节在标题中的格式”必须选择“把双宽字符看作两个常规字符”) | $len2(abc)返回3,$len2(你好)返回4 |
$longer(x,y) | 比较字串x是否比字串y长,一般用在$if()类型函数里或其他逻辑操作 | |
$lower(x) | 把X转换为小写 | $lower(%title%) |
$longest(a,b,c,....) | 比较a,b,c....,返回最长的字串 | $longest(%title%,%comment%) |
$mod(x,y) | 求x÷y的余数 | $mod($rand(),10) |
$mul(x,y...) | 多个整数相乘 (x*y*...) | $add(%TRACKNUMBER%,$mul(%DISC%,100)) |
$muldiv(x,y,z) | 整数x乘以整数y然后除以整数z | |
$min(x,y...) | 数学操作(取最小值) | |
$max(x,y...) | 数学操作(取最大值) | |
$meta(x) | 插入元数据段名x的值 | "$meta(artist)" 和 "%artist%" 一样 |
$meta(x,y) | 对于每个段名存在多个值,返回元数据段名x的第y个值 | "multiple artists - $meta(artist,1), $meta(artist,2)" |
$meta_sep(x,y), $meta_sep(x,y,z) | 对存在多个值的段x使用自定义的分隔符分隔并返回元数据 | 对有三个作者A, B, C的段使用"$meta(artist,', ','和')" 将产生 - "A, B和C" |
$meta_num(x) | 返回元数据段x当前值的个数 | |
$num(x,y) | 显示x,如果x位数小于y则在前面插入0补齐(常用在音轨的序号上) | $num(%tracknumber%,2) |
$not(x) | “非”逻辑运算,x=0时返回1,x=1时返回0。一般用在$if()类型函数里或其他逻辑操作 | |
$or(x,y...) | “或”逻辑运算,x=y=0时返回0否则返回1。一般用在$if()类型函数里或其他逻辑操作 | |
$pad(x,y), $pad_right(x,y) | 字串x的长度小于y时用空格补齐到y个字符。_right表示从右边开始操作 | |
$pad(x,y,z), $pad_right(x,y,z) | 字串x的长度小于y时用z字符补齐到y个字符。_right表示从右边开始操作 | |
$padcut(x,y), $padcut_right(x,y) | 字串x的长度小于y时填充x到y个字符,字串x的长度大于y时截断x到y个字符。_right表示从右边开始操作 | |
$progress(a,b,c,d,e), $progress2(a,b,c,d,e) | 创建进度条: a包含位置,b包含范围,c为进度条字符长度,d和e为建立进度条的字符。$progress2()所表现的形式不一样 | "$progress(%_time_elapsed_seconds%, %_time_total_seconds%, 20,'#','=')" 产生"====#===============", #字符会随着回放位置而移动 |
$rand() | 在0到2 32 -1(32位真彩)范围内随机产生一个数字 | $mod($rand(),10) |
$repeat(x,y) | 重复x字符y次 | |
$replace(a,b,c) | 把存在于a字串里的所有b字串替换为c字串。另外,你可以指定多个参数,$replace(a,b1,c1,b2,c2,b3,c3....),所有的bX将会被替换为对应的cX | |
$right(a,b) | 返回a字串右起b个字符 | $right(%title%,5) |
$roman(x) | 把十进制数x转换为罗马符号 | $roman(%tracknumber%) |
$rgb(a,b,c), $rgb(a,b,c,d,e,f) | 把十进制颜色值转换为颜色代码(看上面的颜色) | |
$shortest(a,b,c,....) | 比较a,b,c...并返回最短的一个字串 | $shortest(%title%,%comment%) |
$strchr(x,y) | 返回在字串x里出现的第一个y字符在x字串里的位置 | "$strchr(1234abcdc,c)"将返回7 |
$strrchr(x,y) | 返回在字串x里出现的最后一个y字符在x字串里的位置 | "$strrchr(1234abcdc,c)"将返回9 |
$strstr(x,y) | 返回在字串x里出现的第一个y字串在x字串里的位置 | "$strstr(1234abcdc,34ab)"将返回3 |
$sub(x,y) | 减法(x-y) | |
$strcmp(x,y) | 比较两个字串,当x等于y时返回1,否则返回0。一般用在$if()类型函数里或其他逻辑操作 | |
$stricmp(x,y) | 比较两个字串,当x等于y时返回1,否则返回0,不区别大小写。一般用在$if()类型函数里或其他逻辑操作 | |
$substr(a,b,c) | 返回字串a里的子字串,从第b个字符开始到第c个字符 | $substr('blah',1,2) 返回 'bl' |
$select(n,a,b,c,....) | 返回字串a,b,c...里的第n个字串 | |
$trim(a) | 移除a字串里开始、结尾处的空格 | $trim(%comment%) |
$tab(), $tab(n) | 产生一个($tab())或多个($tab(n))制表符 | $tab() |
$transition(a,b,c) | 使a字串产生从b颜色到c颜色的渐变 | $transition(%TITLE%,$rgb(0,0,0),$rgb(255,255,255)) |
$upper(x) | 把x转换为大写 | $upper(%title%) |
$xor(x,y) | “异或”逻辑运算,x≠y时返回1否则返回0。一般用在$if()类型函数里或其他逻辑操作 |
变量操作
$put(name,text) | 把变量名<name>指向<text>并返回<text> | "$put(x,blah)" 把变量 x 指向 'blah' 并返回 'blah' |
$puts(name,text) | 和$put(name,text)一样,但是返回空字串 | |
$get(name) | 返回<name>变量的值 | "$puts(x,blah)$get(x)$get(x)" 将返回 'blahblah' |
- 变量允许你保存一些临时的、重复的文本处理结果来减少你的字串格式。
- 变量不能保存在例如标题格式化处理中而且如果你想用它来修改实际的文件信息是不可行的。