webForumDet fria alternativet

köra program?

37 svar · 1 290 visningar · startad av voigtann1 · sida 2 av 2

trexterMedlem sedan mars 20021 889 inlägg
#21

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
#22

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
#23

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
#24

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
#25

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
#26

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
#27

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
#28

:bire

trexterMedlem sedan mars 20021 889 inlägg
#29

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
#30

start:
...
end:
goto start

PeWMedlem sedan juni 200010 432 inlägg
#31

Och vad har detta med C++ att göra?

nikoMedlem sedan juni 20022 599 inlägg
#32

Ingenting. Som redan konstaterats är det en liten off-topicdiskussion med utgångspunkt i inlägg 3.

PeWMedlem sedan juni 200010 432 inlägg
#33

Kul

Del PeroMedlem sedan feb. 20003 785 inlägg
#34

Flyttas från C++

Marcus EMedlem sedan maj 20021 466 inlägg
#35

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
#36

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
#37

Funkar det för dig nu?
Vill du ha koden eller vill du bara ha ett program?

sneezeMedlem sedan dec. 20021 804 inlägg
#38

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'

batch.gif
134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)