---
# System prepended metadata

title: foobar2000 播放列表的一些设置
tags: [foobar2000, 术业专攻]

---

## 更新听过和没听过的歌曲分类方法

> 使用foobar几乎就不可能离开媒体库，虽然foobar的播放列表功能也很强大，但是依然不可能离开媒体库。比如，系统默认的评级、播放次数只能对媒体库中的文件生效、在媒体库中能灵活的管理电脑中的所有音乐文件等等。媒体库有基于dui和cui的，这是基于cui的媒体库。
> 

下面介绍几个最常见的分类排序方式，建议大家看看标题格式化（title formating）代码，这样自己可以对媒体库进行灵活的自定义。

### 按播放次数（by play_count）：

`$num(%play_count%,3)|$if2($caps(%artist%),Unknown Artist)|$if2(%ALBUM%,%directoryname%)[ '['%DATE%']']|['['#$tracknumber()']' ]%title%[ '['%length%']']`

### 按专辑（by Album）：

`$ if2(%album%,$char(13)Unknown Album)[ '['%album artist%']']|[[%discnumber%.]%tracknumber%. ][%track artist% - ]%title%`

### 按艺术家（by artist）：

`$if2(%<artist>%,$char(13)Unknown Artist)|$if2(%album%,$char(13)Unknown Album)|[[%discnumber%.]%tracknumber%. ][%track artist% - ]%title%`

### 按流派（by genre）：

`$ if2(%<genre>%,$char(13)Unknown Genre)|[%album artist% - ]$if2(%album%,$char(13)Unknown Album)|[[%discnumber%.]%tracknumber%. ][%track artist% - ]%title%`

### 按年代（by year）：

`$if2(%<date>%,$char(13)Unknown Date)|[%album artist% - ]$if2(%album%,$char(13)Unknown Album)|[[%discnumber%.]%tracknumber%. ][%track artist% - ]%title%`

### 按评级（by rating）：

`$if2(%rating%☆,$char(13)Unrated)|$if2(%<artist>%,$char(13)Unknown Artist)|%title%`

### 按文件编码方式（by codec）：

```
$puts(tem,$upper($ext($if2(%__referenced_file%,%filename_ext%))))$if($stricmp($get(tem),),[%codec%],$get(tem))|[%album artist% - ]['['%date%']' ]$if2(%album%,$char(13)Unknown Album)|[[%discnumber%.]%tracknumber%. ][%track artist% - ]%title%

```

### 按截短的一级目录（Truncate First Directory Level）：

```
$puts(path,$replace($directory_path(%path%),\\,|$char(13))|%filename_ext%
$ifgreater(%subsong%,0,|%tracknumber%.%title%,))
$substr($get(path),$add($strchr($get(path),|),1),$len($get(path)))

```

### 按截短的二级目录（Truncate First 2 Directory Levels）：

```
$puts(path,$replace($directory_path(%path%),\\,|$char(13))|%filename_ext%
$ifgreater(%subsong%,0,|%tracknumber%.%title%,))
$puts(path,$substr($get(path),$add($strchr($get(path),|),1),$len($get(path))))
$substr($get(path),$add($strchr($get(path),|),1),$len($get(path)))

```

### 按截短的三级目录（Truncate First 3 Directory Levels）：

```
$puts(path,$replace($directory_path(%path%),\\,|$char(13))|%filename_ext%
$ifgreater(%subsong%,0,|%tracknumber%.%title%,))
$puts(path,$substr($get(path),$add($strchr($get(path),|),1),$len($get(path))))
$puts(path,$substr($get(path),$add($strchr($get(path),|),1),$len($get(path))))
$substr($get(path),$add($strchr($get(path),|),1),$len($get(path)))

```

### 按音乐是否听过分类：

应知乎网友提出的问题：你用什么软件管理音乐？ 按音乐有没有听过来分类：

```
$ifgreater($num(%play_count%,1),0,$char(13)播放过的,$char(13)未播放过)|%title%[ '['%length%']‘]

```

### 以播放次数5次为阶梯：

```
$ifgreater($num(%play_count%,1),5,$ifgreater($num(%play_count%,1),10,$ifgreater($num(%play_count%,1),15,$char(13)播放次数大于15次,$char(13)播放次数大于10次小于15次),$char(13)播放次数大于5次小于10次),$char(13)播放次数小于5次)|%title%[ '['%length%']']

```

## 参考来源：

[古意人Blog-foobar媒体库中常用的分类排序方式代码集合](http://www.guyiren.com/archives/195)