batch file om muziek te inventariseren

Status
Niet open voor verdere reacties.

Nakkie040

Gebruiker
Lid geworden
17 jul 2008
Berichten
231
beste,

ik ben heeeeeel slecht in het maken van batch files. maar toch ben ik eraan begonnen. ik wil een batch file maken om al mijn muziek te inventariseren, 7000 nr's is toch te veel om handmatig te doen :p

ik heb al wat code bij elkaar staan maar ik snap het niet meer

tot zo ver ben ik gekomen misschien dat iemand zo ziet wat ik nou fout doe ?

Code:
@echo off
goto menu
:menu
echo dit bestand maakt een lijst van de opgeslagen muziek
echo --------------- created by nakkie ------------------
echo.
echo keuze
echo.
echo 1 MP3 Files
echo 2 WAV Files
echo 3 MWA Files
echo 4 Afsluiten
echo 5 Het hele overzicht bekijken
echo.

find e:\muzieklijst\muzieklijst.txt
if not exist goto create else goto keuzemenu

:create
write e:\muzieklijst\muzieklijst.txt
goto keuzemenu

:keuzemenu

cd e:\muzieklijst
set choice= /C:12345 /n Kies de files:

if errorlevel 5 goto overzicht
if errorlevel 4 goto quit
if errorlevel 3 goto WMA
if errorlevel 2 goto WAV
if errorlevel 1 goto MP3

:WMA
cd E:\muziek
dir *.wma /b > e:\muzieklijst\muzieklijst.txt
cd C:\mysharedfolder
dir *.wma /b > e:\muzieklijst\muzieklijst.txt
goto keuzemenu

:WAV
cd E:\muziek
dir *.wav /b > e:\muzieklijst\muzieklijst.txt
cd C:\mysharedfolder
dir *.wav /b > e:\muzieklijst\muzieklijst.txt
goto keuzemenu

:MP3
cd E:\muziek
dir *.mp3 /b > e:\muzieklijst\muzieklijst.txt
cd C:\mysharedfolder
dir *.mp3 /b > e:\muzieklijst\muzieklijst.txt
goto keuzemenu

:overzicht
edit muzieklijst.txt

:quit
exit
:end
 
Ik zie wel een paar dingen hier:
1. je eerste if - statement: Er staat geen conditie genoemd. Bovendien gebruik je "else" die (in ieder geval in XP) niet gebruikt kan worden.
2. Je gebruikt '>' altijd in de secties :WMA etc., hetgeen betekent dat het bestand altijd wordt overschreven. Je houdt dus alleen iets over van de allerlaatst uitgevoerde schrijfactie.
Met '>>' hang je tekst aan een bestand dat al bestaat (of als het bestand niet bestaat dan wordt die gemaakt), dus die zul je zowiezo een paar keer moeten inzetten.

Succes,

Tijs.
 
ok tnx ik ga het aanpassen :)


EDIT

dit is de code nu
Code:
@echo off
goto menu
:menu
echo dit bestand maakt een lijst van de opgeslagen muziek
echo --------------- created by nakkie ------------------
echo.
echo keuze
echo.
echo 1 MP3 Files
echo 2 WAV Files
echo 3 MWA Files
echo 4 Afsluiten
echo.

find e:\muzieklijst\muzieklijst.txt
if exist goto keuzemenu
write e:\muzieklijst\muzieklijst.txt
goto keuzemenu

:keuzemenu

cd e:\muzieklijst
set choice= /C:12345 /n Kies de files:

if errorlevel 5 goto overzicht
if errorlevel 4 goto quit
if errorlevel 3 goto WMA
if errorlevel 2 goto WAV
if errorlevel 1 goto MP3

:WMA
cd E:\muziek
dir *.wma /b >> e:\muzieklijst\muzieklijst.txt
cd C:\mysharedfolder
dir *.wma /b >> e:\muzieklijst\muzieklijst.txt
goto keuzemenu

:WAV
cd E:\muziek
dir *.wav /b >> e:\muzieklijst\muzieklijst.txt
cd C:\mysharedfolder
dir *.wav /b >> e:\muzieklijst\muzieklijst.txt
goto keuzemenu

:MP3
cd E:\muziek
dir *.mp3 /b >> e:\muzieklijst\muzieklijst.txt
cd C:\mysharedfolder
dir *.mp3 /b >> e:\muzieklijst\muzieklijst.txt
goto keuzemenu

:overzicht
edit muzieklijst.txt

:quit
exit
:end
 
Laatst bewerkt:
Zelf gebruik ik nooit het choice command omdattie er in XP niet meer inzit ;)

dat zul je kunnen veranderen in
Code:
set /p UserInput=Kies een nummer(1-4):
if "%UserInput%"=="1" goto MP3
if "%UserInput%"=="2" goto WAV
if "%UserInput%"=="3" goto WMA
if "%UserInput%"=="4" goto QUIT
GOTO overzicht

Wel sneaky hoor die hidden 5 ;)
 
ok ik zal dat ook eens proberen :)

haha en nummer 5 zou ook een keuze moeten worden was ik nog vergeten goed aan te passen :p toch bedankt voor de herinnering ;)
 
ooh en als ik start muzieklijst.txt gebruik dan wordt dat geopend in notepad ipv het editscherm van cmd ofniet ?
 
Yup, dat is gewoon de windows koppeling aan de txt extentie
 
ok geschikt ik kom weer iets verder :)

het keuze menu werkt nou in ieder geval

alleen muzieklijst.txt word al geopend voordat ik een keuze kan maken

Code:
@echo off
goto menu
:menu
echo dit bestand maakt een lijst van de opgeslagen muziek
echo --------------- created by nakkie ------------------
echo.
echo keuze
echo.
echo 1 MP3 Files
echo 2 WAV Files
echo 3 MWA Files
echo 4 Afsluiten
echo 5 Het complete overzicht
echo.

find e:\muzieklijst\muzieklijst.txt
if exist goto keuzemenu
write e:\muzieklijst\muzieklijst.txt
goto keuzemenu

:keuzemenu

set /p UserInput=Kies een nummer(1-5):
if "%UserInput%"=="1" goto MP3
if "%UserInput%"=="2" goto WAV
if "%UserInput%"=="3" goto WMA
if "%UserInput%"=="4" goto QUIT
if "%UserInput%"=="5" goto overzicht


:WMA
cd E:\muziek
dir *.wma /b >> e:\muzieklijst\muzieklijst.txt
cd C:\mysharedfolder
dir *.wma /b >> e:\muzieklijst\muzieklijst.txt
goto keuzemenu

:WAV
cd E:\muziek
dir *.wav /b >> e:\muzieklijst\muzieklijst.txt
cd C:\mysharedfolder
dir *.wav /b >> e:\muzieklijst\muzieklijst.txt
goto keuzemenu

:MP3
cd E:\muziek
dir *.mp3 /b >> e:\muzieklijst\muzieklijst.txt
cd C:\mysharedfolder
dir *.mp3 /b >> e:\muzieklijst\muzieklijst.txt
goto keuzemenu

:overzicht
start muzieklijst.txt
goto quit

:quit
exit
:end

plus als ik nu het script uitvoer zegt ie dat de opgegeven bestanden niet gevonden kunnen worden terwijl de links allemaal goed staan, heb ook een paar bestanden in de map staan


en wooow ellasar :p hoe vaak verander jij je handtekening ?:D
 
Laatst bewerkt:
Code:
find e:\muzieklijst\muzieklijst.txt
if exist goto keuzemenu
write e:\muzieklijst\muzieklijst.txt
goto keuzemenu
wijzigen naar
Code:
If exist e:\muzieklijst\muzieklijst.txt goto keuzemenu
echo -- Muzieklijst.txt -- > e:\muzieklijst\muzieklijst.txt
Handtekening.... Heel vaak. Op mijn server staat een dynamische afbeelding
 
Laatst bewerkt:
Ik mis nog steeds die conditie in het if-statement.
Ik denk ook dat het Find statement ook niet nodig is.

Moet het dus niet zoiets worden als:
if exist e:\muzieklijst\muzieklijst.txt goto keuzemenu

Ook moet je cd /d gebruiken omdat je ook van schijfletter wisselt. Dat zal wellicht ook je probleem nu zijn met dat er geen bestanden gevonden worden terwijl ze er wel staan...

Succes maar weer.

Tijs.
 
nog net iets mooier:
Code:
@echo off
goto menu
:menu
echo dit bestand maakt een lijst van de opgeslagen muziek
echo --------------- created by nakkie ------------------
echo.
echo keuze
echo.
echo 1 MP3 Files
echo 2 WAV Files
echo 3 MWA Files
echo 4 Afsluiten
echo 5 Het complete overzicht
echo.

If exist e:\muzieklijst\muzieklijst.txt goto keuzemenu
echo -- Muzieklijst.txt -- > e:\muzieklijst\muzieklijst.txt

:keuzemenu

set /p UserInput=Kies een nummer(1-5):
if "%UserInput%"=="1" set ext=mp3
if "%UserInput%"=="2" set ext=wav
if "%UserInput%"=="3" set ext=wma
if "%UserInput%"=="4" goto QUIT
if "%UserInput%"=="5" goto overzicht

cd E:\muziek /d
dir *.%ext% /b >> e:\muzieklijst\muzieklijst.txt
cd C:\mysharedfolder /d
dir *.%ext% /b >> e:\muzieklijst\muzieklijst.txt
goto keuzemenu

:overzicht
start muzieklijst.txt
goto quit

:quit
exit
:end
 
Laatst bewerkt:
ok vet het werkt nu :D

bedankt voor de hulp !!!

maarja nou heb ik alweer een vraag ( ik weet t ik ben moeilijk van af te komen :D)

als ik dat bestand nou 2 x run dan staan de bestanden er dubbel in, kan dat ook nog veranderd worden ?

EDIT: als ik de batchfile run staan de bestanden er zoiezo dubbel in :shocked: enig idee hoe dat zo kan ?:p

ooh en trouwens

Code:
cd E:\muziek /d
dir *.%ext% /b >> e:\muzieklijst\muzieklijst.txt
cd C:\mysharedfolder /d
dir *.%ext% /b >> e:\muzieklijst\muzieklijst.txt
goto keuzemenu

moet volgens mij worden

Code:
cd [B]/d[/B] E:\muziek
dir *.%ext% /b >> e:\muzieklijst\muzieklijst.txt
cd [B]/d[/B] C:\mysharedfolder 
dir *.%ext% /b >> e:\muzieklijst\muzieklijst.txt
goto keuzemenu
 
Laatst bewerkt:
Editen

goedemorgen weer,

gister thuis het scriptje getest, werkt best goed :)

nou vroeg ik me eigen af of er ook een command was om:
een bepaalde regel in een txt bestand te bewerken en deze vervolgens ook op te slaan als batch file ?
 
Dit bestaat niet, tenminste: Ik ken er geen.

Tijs.
 
De enige mogelijkheid word om het bestand regel voor regel in te lezen en te echo-en naar een nieuw bestand en zodra je dan de aan te passen regel tegen komt die aangepast weg te schrijven....

Maar ja dat is een mogelijkheid die eigenlijk niet te doen is.
Misschien kun je met het werken van variabelen iets genereren die doet wat jij wilt. door bijvoorbeeld parameters aan een batch bestand mee te geven
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan