Trädvy Permalänk
Medlem
Plats
Nacka
Registrerad
Sep 2009

Behöver hjälp med .bat-fil

Hej.

Jag håller på med att göra en .bat-fil för att starta ett antal program. Man ska skriva in programmets/programmens namn och sen skriva go. Jag vill att den ska starta programmen när man skriver "go" och inte direkt. Man ska också kunna skriva list för att se vilka program som ska starta. Men när jag kör filen så startar alla program (både Vlc och Skype) och när jag skriver lisst så syns alla. Jag är lite nybörjare på .bat-filer och har kört fast nånstans, tror det är nånting med "if-kommandot". Så jag vände mig till alla duktiga experter på Sweclockers...

Här är koden hittills:

@ECHO off title QuickStart set /a [true="[1"]] set /a [skype="[0"]] set /a [vlc="[0"]] :start ECHO. ECHO Press go to start the programms ECHO and close this window. ECHO Press no to eskape. ECHO Press ? for help. ECHO Press list to se the selected Programs ECHO. ECHO Made by Gabriel Ingemarsson ECHO What do you want to start? set /p password=Start: cls if '%password%'=='no' exit if '%password%'=='No' exit if '%password%'=='go' goto go if '%password%'=='Go' goto go if '%password%'=='?' goto help if '%password%'=='list' goto list if '%password%'=='List' goto list if '%password%'=='vlc' goto vlc if '%password%'=='Vlc' goto vlc if '%password%'=='skype' goto skype if '%password%'=='Skype' goto skype goto wrong :Wrong cls ECHO The thing you want to start dos not exist. goto start :Help ECHO You can start this programs: ECHO. ECHO VLC - ECHO Skype - ECHO. ECHO go - Start Programs ECHO no - Escape ECHO ? - Show Help ECHO list - Show selected Programs goto start :list if '%vlc%'=='%true%' ECHO VLC if '%skype%'=='%true%' ECHO Skype goto start :skype set /a [skype="[1"]] ECHO Yes goto start :startskype start %userprofile%\Desktop\Start\Skype.lnk set /a [skype="[0"]] goto afterskype :vlc set /a [vlc="[1"]] ECHO Yes goto start :startvlc start %userprofile%\Desktop\Start\VLC.lnk set /a [vlc="[0"]] goto aftervlc :go if '%vlc%'=='%true%' goto startvlc :aftervlc if '%skype%'=='%true%' goto startskype :afterskype exit

Tacksam för hjälp...

Trädvy Permalänk
Medlem
Registrerad
Okt 2003

ren chansning just nu men prova sätt variablarna för skype och vlc, i if-satsen ifall de ska starta till false som standardvärde??

Laptop - MacBook 2.0GHz, 4GB ram, Intel GMA 950
Stationär - i5 3570k @ 4ghz, 8gb ram, 120gb ssd + 2tb hdd, Windows 8 64bit, fractal design arc
Citera så jag hittar tillbaka :)

Trädvy Permalänk
Medlem
Plats
Nacka
Registrerad
Sep 2009

Vad menar du? Jag är inte så bra på .bat-filer...

Trädvy Permalänk
Medlem
Registrerad
Feb 2008

Skrev ett python-skript som gör i princip samma sak som .bat-scriptet är menat att göra, fast med ett menysystem.
Du behöver python 2.6 för att köra scriptet. www.python.org
har du några problem så får du skicka iväg ett pm
du får ändra i koden som du vill, och det bör inte vara för svårt att lägga till flera program om du vill det.

# -*- coding: utf-8 -*- import os def menu(): print "Programstartare" print " " print "1) VLC" print "2) Skype" print "3) starta valda program" print "4) Lista valda program" print "0) Avsluta" print " " return input ("Välj ett alternativ: ") loop = 1 prog = 0 vlc1 = 0 skype1 = 0 while loop == 1: prog = menu() if prog == 1: print "VLC är valt" vlc = 'C:/program/vlc.exe' #ändra till sökväg för vlc vlc1 = 1 elif prog == 2: print "Skype är valt" skype = 'C:/program/skype.exe' #ändra till sökväg för skype skype1 = 1 elif prog == 3: print "startar valda program" if vlc1 == 1: if skype1 == 1: os.system(vlc) os.system(skype) elif skype1 == 0: os.system(vlc) elif vlc1 == 0: if skype1 == 1: os.system(skype) elif skype1 == 0: print "inga program valda" elif prog == 4: print "Valda program:" print "1 = valt" print " " print "VLC", vlc1 print "Skype", skype1 elif prog == 0: print "Avslutar" loop = 0 else: print "ogiltigt val"

Trädvy Permalänk
Medlem
Plats
Växjö
Registrerad
Sep 2009

Här är ett exempel bara.

set /p input=type answer in lowercase letters
if %input%==yes goto A
if %input%==no goto B
pause
:A
start notepad.exe
:B
start WinRar.exe