trexterMedlem sedan mars 20021 889 inlägg Jag provade batch-varianten men det fungerade inte så bra...
@echo off
cls
echo.
echo 1 ICQ
echo.
choice /c:123 Pick a task.
if errorlevel 1 goto ICQ
:ICQ
cd C:\Program Files\ICQLite
ICQLite.exe
goto End
:End
pause
För det första känns inte "choice"-kommandot igen och för det andra startas ICQLite direkt, utan att jag valt någonting...
:)
nikoMedlem sedan juni 20022 599 inlägg MS gillade inte tanken på att BAT-filer skulle vara kompatibla över olika Windowsversioner så därför finns inte choice-kommandot på 2000/XP. Om du kör en Win9x:a på nån dator så kan du ju alltid låna choice.com från den och placera den i pathen. (När du är färdig så bör du lägga tillbaks den igen av licensskäl, antar jag.)
trexterMedlem sedan mars 20021 889 inlägg Tack för tipset niko. Jag ska se om jag kan leta upp den filen.
Men finns det ingen (annan) lösning som fungerar i NT?
:)
trexterMedlem sedan mars 20021 889 inlägg Fixade filen, verkar fungera bra!
r; Ok.. det fungerade nästan. Försyår inte riktigt logiken i batch. I detta scriptet tror den hela tiden att jag vill köra Miranda oavsett om jag skriver 1 eller 2.
@echo off
cls
echo.
echo 1 Miranda
echo 2 Direct Connect
echo.
choice /c:12 Pick what to run.
if errorlevel 1 goto Miranda
if errorlevel 2 goto DC
:Miranda
cd C:\Program Files\Miranda IM
miranda32.exe
goto End
:DC
cd C:\Program Files\Direct Connect
Direct Connect.exe
goto End
:End
pause
:)
nikoMedlem sedan juni 20022 599 inlägg
I detta scriptet tror den hela tiden att jag vill köra Miranda oavsett om jag skriver 1 eller 2.
Nu är vi iofs way off topic (C++) men vi kör väl vidare:
if errorlevel 1 goto Miranda
betyder "egentligen":
if errorlevel>=1 goto Miranda
Du måste alltså skriva i fallande ordning:
if errorlevel n goto Labeln
if errorlevel n-1 goto Labeln-1
...
if errorlevel 2 goto Label2
if errorlevel 1 goto Label1
Det är förvirrande.
trexterMedlem sedan mars 20021 889 inlägg Tack niko, bara en sak till, sedan ska jag låta voigtann1s tråd vara i frd. ;)
Om jag vill köra "Direcct Connect.exe" i scriptet verkar det som att jag måste fylla ut " " mellan direct och connect på någe sätt...
:)
nikoMedlem sedan juni 20022 599 inlägg Du menar att du har blankslag i filnamnet? Isåf går det bra att använda citationstecken:
:DC
cd "C:\Program Files\Direct Connect"
"Direct Connect"
goto End
trexterMedlem sedan mars 20021 889 inlägg En liten sak till bara.
Hur gör jag om jag vill att inmatningen och exekveringen ska loopas så att man snabbt kan starta flera olika program?
:)
Marcus EMedlem sedan maj 20021 466 inlägg start:
...
end:
goto start
PeWMedlem sedan juni 200010 432 inlägg Och vad har detta med C++ att göra?
nikoMedlem sedan juni 20022 599 inlägg Ingenting. Som redan konstaterats är det en liten off-topicdiskussion med utgångspunkt i inlägg 3.
Marcus EMedlem sedan maj 20021 466 inlägg
niko skrev:
Ingenting. Som redan konstaterats är det en liten off-topicdiskussion med utgångspunkt i inlägg 3.
Ja, och därför vore en delning bättre då trådskaparen vill använda C++.
nikoMedlem sedan juni 20022 599 inlägg
Marcus E skrev:
Ja, och därför vore en delning bättre ..
Ja, en delning och sammanslanging med denna tråd vore kanske mest logiskt?
Alpha IIMedlem sedan maj 20002 993 inlägg Funkar det för dig nu?
Vill du ha koden eller vill du bara ha ett program?
sneezeMedlem sedan dec. 20021 804 inlägg Denna använder jag. (i XP)
Kopiera till ett textdokument och spara det som *.bat
@echo off
COLOR 1e
goto menu
:menu
echo.
echo.
echo oooooooooooooooooooooooooooo
echo o
echo o My App-LAUNCHER
echo o
echo o Make your choice
echo o and hit 'enter'.
echo o
echo o 1 Open A
echo o 2 Open B
echo o 3 Open C
echo o 4 Open D
echo o 5 Open E
echo o 6 Open F
echo o 7 Quit
echo o
echo o
:choice
set /P C= o ^>^>
if "%C%"=="7" goto quit
if "%C%"=="6" goto F
if "%C%"=="5" goto E
if "%C%"=="4" goto D
if "%C%"=="3" goto C
if "%C%"=="2" goto B
if "%C%"=="1" goto A
goto choice
:A
start C:\A.exe
goto menu
:B
start C:\B.exe
goto menu
:C
start C:\C.exe
goto menu
:D
start C:\D.exe
goto menu
:E
start C:\E.exe
goto menu
:F
start C:\F.exe
goto menu
:quit
exit
:end
Så här ser det ut 'live'