У меня есть много компакт-дисков, которые были помечены и затем импортированы в iTunes в следующем формате:

  • Крем Классика (диск 1)
  • Крем Классика (диск 2)
  • Крем Классика (диск 3)

То, что я хотел бы сделать, это установить номер диска каждого из альбомов (так как в iTunes есть метаданные для этого), а затем переименовать альбом в "Cream Classics".

Учитывая количество альбомов, которые у меня есть, это ужасно трудоемкий ручной процесс.

Несмотря на то, что я мог создать что-то в vbscript, чтобы сделать это автоматически, я надеюсь, что это было достаточно распространенной проблемой для кого-то, кто уже решил проблему.

Какие-либо предложения?

1 ответ1

0

Оказывается, что написать vbscript, чтобы исправить это было совсем не сложно.

Создайте новый текстовый файл с именем fixdisc.vbs и вставьте в него следующее:

Option Explicit
Dim oiTunes : Set oiTunes = CreateObject("iTunes.Application")
Dim oLibrary : Set oLibrary = oiTunes.LibraryPlaylist
Dim oTracks : Set oTracks = oLibrary.Tracks
Dim i, oSong, p, sDisk, sNewTitle, iTotal
iTotal = oTracks.Count
For i = 1 To iTotal
    Set oSong = oTracks.Item(i) 
    For p = 1 To 4
        sDisk = " (disc " & p & ")"
        If Instr(1, oSong.Album, sDisk, vbTextCompare) > 0 Then
            sNewTitle = Replace(oSong.Album, sDisk, "", 1, -1, vbTextCompare)
            WScript.Echo i & "/" & iTotal & ": Setting '" & oSong.Album & "' to '" & sNewTitle & "' and disk number to " & p
            ' Remove the ' prefix on the next two lines to actually update the data!
            ' oSong.DiscNumber = p
            ' oSong.Album = sNewTitle
            Exit For
        End If
    Next
Next
Set oSong = Nothing
Set oTracks = Nothing
Set oLibrary = Nothing
Set oiTunes = Nothing

Откройте командную строку (используя cmd), перейдите к местоположению скрипта и введите:

cscript fixdisc.vbs

Сценарий скажет вам, какие альбомы он изменит, но не внесет изменения. Когда вы довольны, отредактируйте скрипт и удалите ' из двух строк, чтобы код выглядел следующим образом:

            ' Remove the ' prefix on the next two lines to actually update the data!
            oSong.DiscNumber = p
            oSong.Album = sNewTitle
            Exit For
        End If

Теперь повторно запустите сценарий, и любые дорожки, содержащие (disc x) (где x от 1 до 4), будут иметь соответствующие метаданные "Номер диска", и название альбома будет обновлено для удаления этой строки.

Предостережения / предупреждение

  • Если вы дважды щелкните по нему из Windows, вы получите спам с всплывающими окнами. Поэтому всегда запускайте из командной строки.
  • Я не полностью протестировал его, используйте на свой страх и риск! (сначала сделайте резервную копию вашей библиотеки)
  • Работает только "диск х", вы можете легко настроить его на поддержку "диска х", если хотите.
  • Работают только диски с номерами от 1 до 4, вы можете легко настроить их, чтобы сделать больше.
  • Сложные номера дисков (например, «Северная экспозиция (диск 1: 0 градусов, север)») не будут исправлены.
  • Это займет довольно много времени, и ваша библиотека iTunes будет хаотично перемещаться по мере исправления данных. Ваш компьютер тоже немного заглох.

Наслаждаться.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .