目錄

標題格式化語法取用

一般欄位

語法 解釋
%title% 曲目標題。若原資料 “title” 不存在則使用檔案名代替。
%artist% 演出者名。依次檢查下列原資料欄位: “artist”, “album artist”, “composer”, “performer”。
%album artist% 專輯演出者名。依次檢查下列原資料欄位: “album artist”, “artist”, “composer”, “performer”。與 %artist% 不同的是 %album artist% 用於在整張專輯有不同演出者的情況。
%track artist% 曲目演出者名。只在 %album artist% 與 %artist% 不同的時候有效。用於與 %album artist% 共同使用以指定專輯中的不同演出者,例如: ”%album artist% - %title%[ '//' %track artist%]” ;在這種情況下,最後一部分內容只會在有根據曲目特殊的演出者存在時才會顯示。
%album% 專輯名。依次檢查下列原資料欄位: “album”, “venue”.
%date% 年代。使用原資料 “date” 欄位。
%genre% 類型,使用原資料 “genre” 欄位。
%tracknumber% 曲目編號。只在存在原資料 “tracknumber” 欄位時有效。
%totaltracks% 合計曲目。只在存在原資料 “totaltracks” 欄位時有效。
%discnumber% 光碟編號。只在存在原資料 “discnumber” 或 “disc” 欄位時有效。
%totaldiscs% 合計光碟。只在存在原資料 “totaldiscs” 欄位時有效。
%codec% 編碼格式名。若無法有效取得準確的編碼格式,使用檔案尾碼。
%codec_profile% 關於編碼設定的附加訊息,並不總是有效。
%filename% 檔案名,不內含尾碼名和目錄
%filename_ext% 檔案名,內含尾碼名但不內含目錄。
%directoryname% 檔案所處目錄名。
%path% 檔案路徑,注意排序時應使用 %path_sort% 而非 %path%。
%subsong% 檔案內的曲目編號,用於單檔案支援多曲目的檔案格式(例如章節和CUE)。
%path_sort% 結合了曲目編號的檔案路徑,用於排序;返回值不確定,因此不應依賴其返回值。
%length% 長度,格式為 [HH:]MM:SS。
%length_seconds% 長度,單位為秒,格式是整數。
%bitrate% 位元率,單位為千位元每秒(kbps);支援動態 VBR 位元率。
%channels% 頻道數(mono/stereo/etc)。
%samplerate% 取樣率,單位為 Hz。
%replaygain_track_gain%, %replaygain_album_gain%, %replaygain_track_peak%, %replaygain_album_peak% 播放增益關聯訊息。
%filesize% 檔案大小,單位為字節。
%filesize_natural% 檔案大小,將根據實際情況返回如MB或KB的形式。
%last_modified% 返回檔案最後變更時間,格式為 YYYY-MM-DD HH:MM:SS。

以上清單內容沒有完成,還有一些不太重要的欄位如 %field%、原資料和 %__field%、技術訊息對應,它們用於保持向後相容性。

右鍵選單欄位
語法 解釋
%list_index% 指定項目所在的清單編號。應用於:播放清單,由 masstagger/massrenamer 處理過的項目的清單,等等。在結果前補足0以適應清單中最大數的位數。
%list_total% 指定項目所在清單的總項目數。應用於:播放清單,由 masstagger/massrenamer 處理過的清單,等等。
%isplaying% 若現用項目現正播放則有效,例如: 一個播放清單項現正播放。用於 $if() 中的條件。
%ispaused% 若現用項目現正播放並處於暫停狀態則有效,例如: 一個播放清單項已暫停。用於 $if() 中的條件。
%playback_time% 現用播放時間,格式為 [HH:]MM:SS。只在某些使用播放右鍵選單訊息的地方有效,例如狀態列。
%playback_time_seconds% 現用播放時間,單位為秒。格式為整數。只在某些使用播放右鍵選單訊息的地方有效,例如狀態列。
%playback_time_remaining% 剩余播放時間,格式為 [HH:]MM:SS。只在某些會使用播放右鍵選單訊息的地方有效,例如狀態列。若現用播放曲目無持續時間訊息則無效。
%playback_time_remaining_seconds% 剩余播放時間,單位為秒。格式為整數。只在某些使用播放右鍵選單訊息的地方有效,例如狀態列。若現用播放曲目無持續時間訊息則無效。
%queue_index% 指定項目所處佇列的編號,只對播放清單有效。
%queue_indexes% 指定項目所處佇列的編號清單,只對播放清單有效。當指定項目只在佇列中出現一次則與 %queue_index% 等價。
%queue_total% 佇列的項目總數。由於技術上的原因該欄位只對屬於佇列中曲目有效。

函式

語法 解釋 示例
$abbr(X) 返回 X 的縮寫。 $abbr(%album%)
$abbr(X,Y) 若 X 的長度不大於 Y,則返回 X 的縮寫,否則返回 X。 $abbr(%album%,5)
$ansi(X) 返回字元串 X 中屬於現用字碼頁的部分,否則置換為相應最適合的字元。一般用於清理檔案名與外部一些對Unicode支援不好的軟體互動。 $ansi(%title%), $ansi(%filename%)
$ascii(X) 返回字元串 X 中屬於ASCII表部分,否則置換為相應最適合的字元。一般用於與外部一些對Unicode支援不好的軟體互動。 $ascii(%title%), $ascii(%filename%)
$lower(X), $upper(X) 將 X 轉換到小寫/大寫。 $upper(%title%)
$num(X,Y) 顯示數位 X 並在前補足0使其長度不小於 Y (用於曲目編號等)。 $num(%tracknumber%,3)
$caps(X) 將所有單詞的第一個字母轉換為大寫,所有其他字母轉換為小寫,例如: “blah BLAH” ⇒ “Blah Blah”. $caps(%title%)
$caps2(X) 類似於 $caps,但是不改變已為大寫的字母,例如: “blah BLAH” ⇒ “Blah BLAH”. $caps2(%title%)
$if(X,Y,Z) 若 X 包括了至少一個有效欄位,則執行/顯示 Y, 否則執行/顯示 Z。 $if(%artist%,%artist%,unknown artist)
$if2(X,Y) 與 $if(X,X,Y) 相同。
$if3(X,Y,Z,..) 返回首先包括至少一個有效欄位的參數。
$ifgreater(A,B,C,D) 若數位 A 大於 B, 則執行/返回 C,否則執行/返回 D。
$iflonger(A,B,C,D) 若字元串 A 長度大於 B,則執行/返回 C,否則執行/返回 D。
$ifequal(A,B,C,D) 若數位 A 等於 B,則執行/返回 C,否則執行/返回 D。
$longest(A,B,C,….) 比較字元串 A,B,C,…並返回最大長度的字元串。 $longest(%title%,%filename%)
$len(X) 返回字元串 X 的長度。
$pad(X,Y), $pad_right(X,Y) 對字元串 X 前/後補足空格使其長度不小於 Y。
$pad(X,Y,Z), $pad_right(X,Y,Z) 對字元串 X 前/後補足字元 Z 使其長度不小於 Y。
$cut(X,Y) 截取 X 使其長度為 Y。
$padcut(X,Y), $padcut_right(X,Y) 對字元串 X 前/後補足空格,並截取結果使其長度不大於 Y。
$insert(A,B,N) 向字元串 A 中 N 個字元後插入字元串 B。
$add(X,Y), $sub(X,Y), $mul(X,Y), $div(X,Y), $mod(X,Y), $min(X,Y), $max(X,Y) 數學運算,依次為:加、減、乘、除、取模、最小值、最大值。
$left(X,Y) 返回字元串 X 的頭 Y 個字元。
$right(X,Y) 返回字元串 X 的後 Y 個字元。
$and(X,Y), $or(X,Y), $xor(X,Y), $not(X) 邏輯運算符,依次為:與、或、異或、非。用於與 $if() 合作。
$fix_eol(x), $fix_eol(x,y) 截取多行字元串,在字元串尾加入 ” (…)” (第一個版本) 或 y (第二個版本)。
$meta(X) 返回原資料欄位 X 的值。 $meta(artist)
$meta_sep(X,Y), $meta_sep(X,Y,Z) 返回原資料欄位 X 中的值,對於多值情況,加上自訂分隔符。 $meta(artist,', ',' and ') ⇒ “artist1, artist2 and artist3”
$meta_num(X) 返回原資料欄位 X 中值的數目。
$info(X) 返回名為 X 的技術訊息。 $info(bitrate)
$char(X) 插入編號為 X 的 Unicode 字元。 $char(9674)
$strcmp(X,Y) 當字元串 X 和 Y 相同時返回 “1”,否則返回空字元串,用於與 $if() 協同使用。
$stricmp(X,Y) $strcmp(X,Y) 的不區分大小寫版本。
$directory(X), $directory(X,N) 從檔案路徑 X 中提取目錄名,附加選項指定提取上 N 級目錄名。 $directory(%path%,2)
$directory_path(X) 從檔案路徑 X 中取得相應目錄路徑。 $directory_path(%path%)
$greater(X,Y) 比較兩個整數,檢驗是否 X > Y,用於與 $if() 和 邏輯運算符共同使用。
$longer(X,Y) 比較兩個字元串,檢驗是否 X 長度大於 Y,用於與 $if() 和 邏輯運算符共同使用。
$strchr(X,Y) 尋找字元串 X 中字元 Y 首先出現位置。
$strrchr(X,Y) 尋找字元串 X 中字元 Y 最後出現位置。
$strstr(X,Y) 尋找字元串 X 中字元串 Y 中首先出現位置。
$progress2(A,B,C,D,E) 建立進度條。(版本2) $progress2(%playback_time_seconds%,%length%,20,’#’,’=’) ⇒ ”#####===============”
$select(N,A,B,C,….) 返回從 A,B,C... 的第 N 個參數。
$repeat(X,N) 重複X N 次。
$replace(A,B,C) 將字元串 A 中所有出現的字元串 B 置換為字元串 C。
$ext(X) 從檔案名/路徑 X 中提取尾碼名。 $ext(%path%)
$substr(A,B,C) 返回 A 的子串,從第 B 個字元到 第C 個字元。 $substr(blah,1,2) ⇒ “bl”
$trim(A) 移除字元串 A 中首/尾空白字元。 $trim(%title%)
$tab() 產生一個制表符,等同於 $char(9)。參見下面 “Tab(制表符)” 以取得詳盡訊息。 $tab()
$stripprefix(X) 將首碼 “A” 和 “The” 從X中移除。 $strippefix(%artist%) ⇒ “The Prodigy” 變為 “Prodigy”
$stripprefix(X,prefix1,prefix2,…) 將指定首碼從 X 中移除。 $stripprefix(%artist%,a,the) ⇒ “The Prodigy” 變為 “Prodigy”
$swapprefix(X) 將首碼 “A” 和 “The” 移動到 X 尾。 $swapprefix(%artist%) ⇒ “The Prodigy” 變為 “Prodigy, The”
$swapprefix(X,prefix1,prefix2,…) 將指定首碼移動到 X 尾。 $swapprefix(%artist%,a,the) ⇒ “The Prodigy” 變為 “Prodigy, The”
$year(time) 從時間/日期字元串中得到“年”(格式為4位數位)。 $year(%last_modified%)
$month(time) 從時間/日期字元串中得到“月”(格式為2位數位)。 $month(%last_modified%)
$day_of_month(time) 從時間/日期字元串中得到月中的第幾天(格式為2位數位)。 $day_of_month(%last_modified%)
$date(time) 從時間/日期字元串中得到日期訊息(格式為 YYYY-MM-DD)。 $date(%last_modified%)
$time(time) 從時間/日期字元串中得到時間訊息(格式為 HH:MM:SS 或 HH:MM)。 $time(%last_modified%)

變數動作

語法 解釋 示例
$put(name,text) 設定名為 name 的變數的值為 text 並且返回 text “$put(x,blah)” 設定變數 x 為 “blah” 並且返回 “blah”.
$puts(name,text) $put() 的靜默版本。與 $put(name,text) 作用相同,但返回空字元串。
$get(name) 返回名為 name 的值,若變數不存在,返回空字元串。 “$puts(x,blah)$get(x)$get(x)” 返回 “blahblah”

其它

語法 解釋 示例
[ …. ] 若欄位不存在引用則丟棄方括號中的所有內容。主要用於建立部分只在關聯欄位有效時的格式化腳本。 %artist% - [%album% / ]%title%
' (單引號) 插入指定文字忽略語法處理;容許有特殊字元比如"%"、"$"、"["和"]"。若需要在文字中插入單引號,可以使用 '' (兩個單引號)。
// 注解,只能用於行首;注解後的文字從行首到行尾不會被解析。
EOL字元 忽略; 你可以使你的腳本分割為多行以增加可讀性,而不會影響結果。
Tab(制表符) 用於對特定右鍵選單文字進行對齊,例如狀態列。參見: $tab() %title%$tab()%length%
彩色控制: < > 用於控制文字彩色的深淺,現在可用於播放清單和狀態列.深淺都有3個層級,可通過重複彩色控制字元控制層級. <淺> >深< >>更深<<