.bat problemen

Status
Niet open voor verdere reacties.

thony7

Nieuwe gebruiker
Lid geworden
21 jan 2010
Berichten
3
hey, ik ben nieuw in de programmeertaal, en heb van wat tutorials op dit forum geleerd hoe het werkte. maar ik heb een vraagje:

Ik heb net een .bat bestand gemaakt om me filmpjes af te kunnen spelen, hij is nog niet helemaal compleet, maar ik dacht, ik ga hem eerst even testen voor ik hem helemaal afmaak, straks is er iets mis. En dat klopte. Ik heb geen idee wat er mis is met het script en ik vraag me dus af kan iemand me helpen het probleem te vinden?

Dit is mijn batch bestand:
Code:
@echo off
title Menu Films
Color 04
:begin
CLS
echo.
echo.
echo South Park aflevering 1 Seizoen 13				=1
echo South Park aflevering 2 Seizoen 13				=2
echo South Park Aflevering 3 Seizoen 13				=3
echo South Park Aflevering 4 Seizoen 13				=4
echo.			
echo NCIS Aflevering 19 Seizoen 06				=5			
echo NCIS Aflevering 20 Seizoen 06				=6
echo.				
echo Psych Aflevering 15 Seizoen 03				=7				
echo Psych Aflevering 16 Seizoen 03				=8
echo.				
echo Two And A half men Aflevering 17 Seizoen 06		=9
echo Two And A half men Aflevering 18 Seizoen 06		=10
echo Two And A half men Aflevering 19 Seizoen 06		=11
echo.
echo NCIS Aflevering 01 Seizoen 07				=12
echo NCIS Aflevering 05 Seizoen 07				=13
echo NCIS Aflevering 06 Seizoen 07				=14
echo NCIS Aflevering 07 Seizoen 07				=15
echo NCIS Aflevering 08 Seizoen 07				=16
echo NCIS Aflevering 09 Seizoen 07				=17
echo NCIS Aflevering 10 Seizoen 07				=18
echo NCIS Aflevering 11 Seizoen 07				=19
echo NCIS Aflevering 12 Seizoen 07				=20
echo.
echo.				
set /p menu= Kies het nummer van de film die je wilt starten:
if "%menu%"=="1" goto Southpark E1
if "%menu%"=="2" goto Southpark E2
if "%menu%"=="3" goto Southpark E3
if "%menu%"=="4" goto Southpark E4
if "%menu%"=="5" goto NCIS E19 S6
if "%menu%"=="6" goto NCIS E19 S6
if "%menu%"=="7" goto Psych E15
if "%menu%"=="8" goto psych E16
if "%menu%"=="9" goto TAAHM E17
if "%menu%"=="10" goto TAAHM E18
if "%menu%"=="11" goto CombatArms
if "%menu%"=="12" goto GUN
if "%menu%"=="13" goto Internet
if "%menu%"=="14" goto MSN
if "%menu%"=="15" goto CombatArms
if "%menu%"=="16" goto GUN
if "%menu%"=="17" goto Internet
if "%menu%"=="18" goto MSN
if "%menu%"=="19" goto CombatArms
if "%menu%"=="20" goto GUN

:Southpark E1
start D:\afleveringen\South.Park.S13E01.avi
cls
echo.
set \p menu=kies 1 als je terug wilt gaan. Kies 2 als je wilt stoppen:
if "%menu%"=="1" goto begin
if "%menu%"=="2" goto einde

:Southpark E2
start D:\afleveringen\South.Park.S13E02.avi
cls
echo.
set \p menu=kies 1 als je terug wilt gaan. Kies 2 als je wilt stoppen:
if "%menu%"=="1" goto begin
if "%menu%"=="2" goto einde


:Southpark E3
start D:\afleveringen\South.Park.S13E03.avi
cls
echo.
set \p menu=kies 1 als je terug wilt gaan. Kies 2 als je wilt stoppen:
if "%menu%"=="1" goto begin
if "%menu%"=="2" goto einde


:Southpark E4
start D:\afleveringen\South.Park.S13E04.avi
cls
echo.
set \p menu=kies 1 als je terug wilt gaan. Kies 2 als je wilt stoppen:
if "%menu%"=="1" goto begin
if "%menu%"=="2" goto einde


:NCIS E19 S6
start D:\afleveringen\NCIS.S06E19.avi
cls
echo.
set \p menu=kies 1 als je terug wilt gaan. Kies 2 als je wilt stoppen:
if "%menu%"=="1" goto begin
if "%menu%"=="2" goto einde


:NCIS E20 S6
start D:\afleveringen\NCIS.S06E20.avi
cls
echo.
set \p menu=kies 1 als je terug wilt gaan. Kies 2 als je wilt stoppen:
if "%menu%"=="1" goto begin
if "%menu%"=="2" goto einde


:Psych E15
start D:\afleveringen\Psych.S03E15.avi
cls
echo.
set \p menu=kies 1 als je terug wilt gaan. Kies 2 als je wilt stoppen:
if "%menu%"=="1" goto begin
if "%menu%"=="2" goto einde

:psych E16
start D:\afleveringen\Psych.S03E16.avi
cls
echo.
set \p menu=kies 1 als je terug wilt gaan. Kies 2 als je wilt stoppen:
if "%menu%"=="1" goto begin
if "%menu%"=="2" goto einde


:TAAHM E17
start D:\afleveringen\TwoAndAhalfMenS6E17.AVI
cls
echo.
set \p menu=kies 1 als je terug wilt gaan. Kies 2 als je wilt stoppen:
if "%menu%"=="1" goto begin
if "%menu%"=="2" goto einde

:TAAHM E18
start D:\afleveringen\TwoAndAhalfMenS6E18.avi
cls
echo.
set \p menu=kies 1 als je terug wilt gaan. Kies 2 als je wilt stoppen:
if "%menu%"=="1" goto begin
if "%menu%"=="2" goto einde


:einde
exit
]
Ik hoop dat iemand het probleem ziet, want ik zie het niet.
m.v.g. Enthony
 
Laatst bewerkt door een moderator:
probeer het eens om de spaties in de namen van de variabelen weg te halen.

werkt dit niet leg dan even precies uit waar het fout gaat.

en eh komen die South-Park filmpjes toevallig van een bepaalde torrent-site? zo komen me namelijk bekend voor :p
 
Laatst bewerkt:
Om te beginnen zou ik m'n menu als volgt opbouwen:
Code:
:menubegin
echo.
echo 1 - menukeuze film 1
echo 2 - menukeuze film 2
echo 3 - menukeuze film 3
echo E - Einde
echo.				
set /p menu=Kies het nummer van de film die je wilt starten:

if "%menu%"=="" goto :begin
if "%menu%"=="1" goto :film1
if "%menu%"=="2" goto :film2
if "%menu%"=="3" goto :film3
if /i "%menu%"=="E" goto :einde
echo Ongeldige keuze
goto :begin

- Menunummers vooraan
- Exit menu toevoegen
- testen met if /i zodat e en E beide goed zijn
- bij ongeldige keuze niet automatisch doorlopen naar starten eerste menukeuze.

Maar dat is niet je fout.
1- Je moet geen spaties in je label zetten (Southpark_E1 ipv Southpark E1)
2- Overal staat
Code:
set \p menu=kies 1 als je terug wilt gaan. Kies 2 als je wilt stoppen:
maar dat moet zijn
Code:
set /p menu=Kies 1 als je terug wilt gaan. Kies 2 als je wilt stoppen:

En eigenlijk kun je ook dit doen:
Code:
:Southpark_E1
start D:\afleveringen\South.Park.S13E01.avi
goto :menu2

:Southpark_E1
start D:\afleveringen\South.Park.S13E02.avi
goto :menu2

:menu2
cls
echo.
set /p menu=Kies 1 als je terug wilt gaan. Kies 2 als je wilt stoppen:
if "%menu%"=="1" goto begin
if "%menu%"=="2" goto einde
goto :menu2
 
hé ja dat had ik nog niet gezien de slash verkeerd om (dat heet een backslash toch?)
 
\ is backslash want hij valt backwards
/ is forwardslash want hij valt voorover

Ik heb wat Amerikanen ook wel "whack" horen zeggen tegen een /
 
ok en 2 foutjes gevonden in uw verbetering

Om te beginnen zou ik m'n menu als volgt opbouwen:
Code:
:menubegin
echo.
echo 1 - menukeuze film 1
echo 2 - menukeuze film 2
echo 3 - menukeuze film 3
echo E - Einde
echo.				
set /p menu=Kies het nummer van de film die je wilt starten:

if "%menu%"=="" goto :begin
if "%menu%"=="1" goto :film1
if "%menu%"=="2" goto :film2
if "%menu%"=="3" goto :film3
if /i "%menu%"=="E" goto :einde
echo Ongeldige keuze    <---------------------------------------------------
goto :begin <-----------------------------------------------2

de code waar ik de pijl achter heb gezet zal de gebruiker niet tezien krijgen tenzij je er een pause tussen stopt :P

en de 2de pijl: de dubbele punt weglaten
 
Laatst bewerkt:
Je hebt gelijk. Achter de foutmelding had nog een PAUSE moeten staan.

Zelf zet ik altijd : voor de labelnaam om duidelijker aan te geven dat het een label betreft. Want behalve GOTO :Label kun je ook CALL :Label doen. En dat is dan weer een duidelijker onderscheid van CALL ANDEREBATCH.BAT

Komt denk ik ook omdat ik begon te programmeren in BASIC waarin het verplicht was.

Verder zie ik in m'n eigen code nog :menubegin staan. Dat moet natuurlijk :begin zijn :)
 
ik dacht dat het verschil maakte of je er een ":" voor zette maar nee dus ik wist dat niet omdat ik eigenlijjk nooit andere batchfiles aanroep typ ik gewoon de naam en ":menubegin" had ik ook nog niet gezien
 
hey, heel erg bedankt jongens, ik ben de aanpassingen nu aan het toevoegen, nu maaar hopen dat die t doet:D.

BATCH, ja klopt;p ik heb al die afleveringen enzo van TED gehaalt, Torrent Episode Downloader, een heel fijn programmatje voor series^^
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan