আমার কাছে অডিও নমুনার ফোল্ডার রয়েছে এবং আমি যা ব্যবহার করি না সেগুলি মুছে ফেলতে চলেছি, তবে আমি একটি SQLite ডাটাবেসের মূল উপাদানগুলির একটি রেকর্ড চাই।
বর্তমানে, আমি সরাসরি ডেটাবেসে লিখছি, কিন্তু আমি মনে করি .CSV
ফাইলটিতে লেখার এবং ডাটাবেসের মধ্যে আমদানি করা আরও দ্রুত হবে কারণ শত শত ফাইল রয়েছে।
পরীক্ষা করার জন্য আমার ফাইল সিস্টেম + ডামি ফাইলগুলির মত ডিরেক্টরি ট্রি তৈরি করতে এই ব্যাচ কোডটি ব্যবহার করুন। যেখানেই আপনি ফাইলটি চালান সেখানেই এটি তৈরি হবে। (আমার ক্ষেত্রে, শীর্ষ ফোল্ডারটি নামকরণ করা হয়েছে Testing
:
SET "BigFish=Z. Unsorted\Big Fish Audio\Midnight Jazz Train\Brass and Winds"
SET "Fragments=Z. Unsorted\Loopmasters\Fragments 02\FR2_SOUNDS_&_FX\FR2_BASS"
SET "LCycles=Z. Unsorted\Loopmasters\Hip-Hop Lunar Cycles\LUN_SYNTH_MELODY_LOOPS"
FOR %%A IN (Tenor_Sax, Trumpet) DO MD "%BigFish%\%%A"
MD "%Fragments%"
MD "%LCycles%"
@echo justtestjunk > "%Fragments%\loop.wav"
@echo justtestjunk > "%LCycles%\drum.aiff"
@echo justtestjunk > "%LCycles%\file.txt"
FOR %%A IN (Tenor_Sax, Trumpet) DO echo justtestjunk > "%BigFish%\%%A\data.sql"
সহায়তায়, আমি একটি ডাটাবেস তৈরি করতে এবং কিছু এন্ট্রি করতে পরিচালিত করেছি, তবে আমার আউটপুট নিম্নরূপ দেখায় (শুধুমাত্র প্রথম সারির নমুনা):
loop.wav, Testing, Z. Unsorted, Loopmasters, Fragments 02, 15
যখন আমি চাই এই হল:
loop.wav, Loopmasters, Fragments 02, FR2_SOUNDS_&FX, FR2_BASS, 15
আমি সমস্যা কোড মধ্যে delimiting সঙ্গে মনে হয় । এছাড়াও, আমি একটি Type
মান অনুপস্থিতির জন্য কোডটি প্রয়োজন (এটি রেখে NULL
)
তাই ...
বর্তমান কোড
@echo off
setlocal enabledelayedexpansion
SET fld="Z. Unsorted"
sqlite3 %fld%\TestDb.sqlite "CREATE TABLE IF NOT EXISTS \"Samples\" (File TEXT NOT NULL, Publisher TEXT, Pack TEXT NOT NULL, Category TEXT, Type TEXT, Size INT);"
for /r %fld% %%A in (*.aiff *.wav) do (
call :part "%%~dpA"
set "File=%%~nxA"
set "File=!File:'=''!"
sqlite3 %fld%\TestDb.sqlite "INSERT OR REPLACE INTO \"Samples\" VALUES ('!File!', '!Publisher!', '!Pack!', '!Category!', '!Type!', '%%~zA');"
@echo '!File!', '!Publisher!', '!Pack!', '!Category!', '%%~zA'
)
PAUSE
:part
for /f "tokens=6-10 delims=\" %%A in ("%~1") do (
set "Publisher=%%~A"
set "Publisher=!Publisher:'=''!"
set "Pack=%%~B"
set "Pack=!Pack:'=''!"
set "Category=%%~C"
set "Category=!Category:'=''!"
set "Type=%%~D"
set "Type=!Type:'=''!"
)