ฉันค่อนข้างใหม่กับการเขียนโปรแกรมโดยทั่วไปและฉันไม่แน่ใจว่าจะทำงานนี้ให้สำเร็จในสคริปต์ทุบตีของฉันได้อย่างไร
พื้นหลังโดยย่อ: เมื่อนำเข้าคลังเพลงของฉัน (เดิมจัดโดย iTunes) ไปยัง Banshee ไฟล์ทั้งหมดถูกทำซ้ำเพื่อให้เหมาะกับสไตล์ตัวเลขของ Banshee (เช่น 02. แทนที่จะเป็น 02 ) ยิ่งไปกว่านั้น iTunes เห็นได้ชัดว่าไม่ได้บันทึก ID3 แท็กให้กับไฟล์ต่างๆ มากมายจึงว่างเปล่า ตอนนี้ฉันมีแท็กสองสามพันแท็กที่ต้องแก้ไขและทำซ้ำไฟล์ที่จะกำจัด
เพื่อให้กระบวนการเป็นแบบอัตโนมัติ ฉันเริ่มเรียนรู้การเขียนสคริปต์ทุบตี ฉันคิดสคริปต์ขึ้นมา (ซึ่งคุณสามารถดูได้ที่นี่) ที่ทำสี่สิ่ง: ลบไฟล์ iTunes ที่ไม่จำเป็น รับอินพุต จากผู้ใช้เกี่ยวกับข้อมูลแท็ก ID3 และจัดเก็บไว้ในตัวแปร ล้างข้อมูลแท็กปัจจุบันออกจากไฟล์ทั้งหมด เขียนแท็กใหม่ด้วยข้อมูลที่นำมาจากผู้ใช้ โดยใช้โปรแกรมชื่อ eyeD3
ตอนนี้ฉันพบปัญหาของฉันที่นี่ สคริปต์นี้เป็นการเขียนข้อมูลแบบสุ่มสี่สุ่มห้าไปยังไฟล์ mp3 ทั้งหมดใน dir ซึ่งเป็นเรื่องปกติสำหรับแท็กที่ไฟล์ทั้งหมดมีเหมือนกัน เช่น ศิลปิน อัลบั้ม แทร็กทั้งหมด ปี ฯลฯ แต่ฉันไม่สามารถแท็กหมายเลขแทร็กแต่ละหมายเลขด้วยวิธีนี้ได้ ฉันจึงยังคงแก้ไขแท็ก track# ทีละรายการด้วยตนเอง และนั่นคือสิ่งที่ฉันไม่อยากทำเกิน 2,000 ครั้งจริงๆ
ชื่อไฟล์ทั้งหมดมีลักษณะดังนี้:
01. song1.mp3
02. song2.mp3
03. song3.mp3
คำสั่งในการเขียนหมายเลขแทร็กลงในแท็กมีลักษณะดังนี้:
$ eyeD3 -n 1 "01. song1.mpg"
ดังนั้น... ฉันไม่แน่ใจว่าจะทำให้สิ่งนี้เป็นอัตโนมัติได้อย่างไร ฉันต้องคว้าตัวเลขสองตัวแรกของชื่อไฟล์แต่ละชื่อ เก็บไว้ที่ใดที่หนึ่ง จากนั้นเรียกคืนแต่ละหลักในคำสั่ง eyeD3 ที่แยกจากกัน