Gå til innhold

Anbefalte innlegg

Videoannonse
Annonse
Hvordan skal det innstaleres da?

 

Hva mener du?

Skal først teste det på PCen her, slik at installasjonsprogramet starter opp.

Men hadde hovedsakelig tenkt å bruke det på server på skolen, slik at jeg kunne ordne slik at f. eks adobe reader blir automatisk installert, eller i første omgang bare installasjonsprogramet starter opp ved hjelp av et script.

Lenke til kommentar

@ECHO OFF
E:\Progra~1\Format~1\Instal~1.EXE

 

I gamledager kunne man legge inn ting som skulle skje automatisk ved oppstart i autoexec.bat på C:\, men jeg er usikker på om dette enda er mulig i Win2K/XP.

Uansett kan du legge en snarvei til .bat-fila som utfører ting automatisk i Startup på Start-menyen. Krever dog at brukere har logget inn på 2K/XP-kontoen sin før .bat-fila vil kjøre.

 

CMD/MS-DOS støtter ikke mapper/filnavn lengre enn 8 bokstaver/tall, derfor kommer kun de 6 første bokstaver/tall med, etterfulgt av ~1 som indikerer at CMD/MS-DOS har forenklet mappe/filnavnet. Tungvint, men sånn er det dessverre.

Endret av skag1
Lenke til kommentar

Haha funket meget bra :thumbup:

Men en ting jeg lurer på

@ECHO OFF

E:\Progra~1\Format~1\Instal~1.EXE

Hvorfor må man ikke skrive f. eks start før E:\Progra~1\Format~1\Instal~1.EXE?

 

Uansett kan du legge en snarvei til .bat-fila som utfører ting automatisk i Startup på Start-menyen. Krever dog at brukere har logget inn på 2K/XP-kontoen sin før .bat-fila vil kjøre.

 

Men hvordan ville dette fungere i praksiss da?

 

Har også hadt problemer hvis jeg skulle for eksempel kopiere en fil til en annen mappe f. eks

Hvordan gjør man dette?

 

Hvis jeg skal starte en videofil som ligger i mappa F:\Film & TV\My name is Earl

filen heter My.Name.Is.Earl.S02E09.HDTV.XviD-XOR

Hva skal jeg da skrive for å få den til å spille av?

Endret av LeanFear
Lenke til kommentar

CMD i Windows er egentlig en MS-DOS-klone i Windows. MS-DOS var kommandobasert, og syntaksen tillot at man startet programmer bare ved å skrive filnavnet direkte. Heller trenger man ikke å spesifisere filetternavn (extention), så du kan også utelate .EXE/.COM/.BAT i eksekuterbare filer.

 

Mange windowsprogrammer tillater at man starter de fra CMD med parametre, men jeg er usikker på om dette er noe som Windows tar seg av, eller om støtte for slikt er avhengig av programmet i seg selv. :hmm:

 

Men dersom du bruker VLC kan du jo teste dette slik:

@ECHO OFF
C:\%programfiles%\VideoL~1VLC\VLC.EXE F:\Film~1\My~1\My.Nam~1.AVI

 

Jeg tviler sterkt på at dette vil fungere, siden jeg ikke husker hvordan CMD/MS-DOS håndterer mellomrom (om det bare brytes med ~1), samt at filnavnet på fila du vil spilles av vil hete noe annet siden du trolig har mange filer som har de 10 første bokstavene/tallene identisk. Da kan filnavnet være f.eks My.Nam~7.AVI, så jeg anbefaler deg heller å navigere til mappa filene ligger i og skriv DIR så du kan se hva de enkelte filene heter. Ting hadde vært mye enklere om CMD hadde støttet lange filnavner med mellomrom :hrm:

 

Edit: Bemerk også %programfiles% som er en variabel satt av Windows. På denne måten slipper du å ta hensyn til forskjellige språkversionen av Windows (f.eks Program Files vs. Programfiler). For en liste over flere slike variabler skriver du SET i CMD og trykker enter. Du kan også lage dine egne variabler med SET variabel=innhold, og teste de slik jeg gjør i mine andre batcher jeg har postet tidligere i tråden med IF-setninger. :)

Endret av skag1
Lenke til kommentar

Utrolig morro å sitte å finne ut slike ting :w00t:

Jeg måtte derimot bruke dir for at jeg skulle kunne i det hele tatt komme meg fram til de forskjellige filene.

Men jeg trengte ikke å ha hele scriptet med både VLC og filmfilen i, jeg trengte kun å ha filmfilen.

Tror jeg skal greie å putte sammen et skript til serveren nå, men det som blir det store problemet er at den blir å starte hver eneste gang en bruker logger seg på, selv om programmet er installert fra før av.

Har du noe forslag til hvordan jeg skal kunne løse det?

Endret av LeanFear
Lenke til kommentar

Du kan sjekke om filer som kun vil eksistere når programmet er installert finnes. Hvis batchen ikke finner disse filene vil den f.eks kjøre installasjonsprogrammet - dersom den finner installasjonsfilen :)

F.eks sjekke om VLC er installert:

 

@ECHO OFF
IF EXIST C:\%programfiles%\VideoL~1\VLC\VLC.EXE GOTO :END
IF NOT EXIST C:\Download\vlc-0.~1.exe GOTO :ERROR
C:\Download\vlc-0.~1.exe

:ERROR
ECHO.
ECHO  C:\Download\vlc-0.~1.exe appears to be missing.
PAUSE

:END

 

Edit: Manglet en essensiell skråstrek..

Endret av skag1
Lenke til kommentar

Funket perfekt, etter noen justeringer :dribble:

Men har et siste problem jeg skal jo automatisk installere programmer over på andre brukere som er i mitt domene.

Det jeg må få til er at jeg henter filene fra servern på nettverket, \\singapore.2ika\sysvol der skal jeg hente ut filen.

Hvordan får jeg tillgang til dit via CMD?

\\singapore.2ika\sysvol ligger under my network places.

Trenger svar fort, sitter på skolen å skal bli ferdig med dette :thumbup:

Lenke til kommentar

Har aldri prøvet å akksessere andre maskiner i nettverk via CMD.

Men du kan prøve følgende:

 

NET \\singapore.2ika\sysvol\filnavn.ext

 

er usikker på om NET-kommandoen kan gjøre dette, men du får teste litt med NET.

Skriv NET -? for liste over parametre og syntaks, og f.eks NET SEND -? for mer info om SEND-funksjonen.

Endret av skag1
Lenke til kommentar
  • 2 uker senere...

hva er gerent med denne commandoen?

@echo off
cls
echo skriv inn et gaming ord
set /p lol=
IF %lol% equ lol goto lol
cls
echo ikke i liste
pause
exit
:lol
cls
echo laugh out loud
pause
echo skriv inn et gaming ord
set /p omg=
IF %omg% equ omg goto omg
cls
echo ikke i liste
:omg
echo ow my good
pause
exit

det som er meningen at skal skje er at den som opner programme skal kunne skrive inn det gaming orde han/henne lurer på hva betyr så sier programme hva det betyr

Lenke til kommentar

hva er gerent med denne commandoen?

@echo off
cls
echo skriv inn et gaming ord
set /p lol=
IF %lol% equ lol goto lol
cls
echo ikke i liste
pause
exit
:lol
cls
echo laugh out loud
pause
echo skriv inn et gaming ord
set /p omg=
IF %omg% equ omg goto omg
cls
echo ikke i liste
:omg
echo ow my good
pause
exit

det som er meningen at skal skje er at den som opner programme skal kunne skrive inn det gaming orde han/henne lurer på hva betyr så sier programme hva det betyr

Lenke til kommentar

Du skriver samme kode flere ganger, noe som er litt unødvendig.

Forøvrig anbefaler jeg deg å bruke /i i IF-setningene dine, ellers er input/svar case-sensitiv!

Jeg ville heller gjort det slik:

 

@ECHO OFF
:ASK
CLS
ECHO.
SET /P INPUT=Skriv inn et gaming-ord (X = Avslutt)
IF /I "%INPUT%"=="" GOTO :ERROR
IF /I "%INPUT%"=="X" GOTO :END
IF /I "%INPUT%"=="OMG" GOTO :OMG
IF /I "%INPUT%"=="LOL" GOTO :LOL
IF /I "%INPUT%"=="WTF" GOTO :WTF

:ERROR
ECHO.
ECHO  Du skrev ingen ord. Prøv igjen.
PAUSE
GOTO :ASK

:OMG
ECHO.
ECHO Oh My God.
PAUSE
GOTO :ASK

:LOL
ECHO.
ECHO Laughing Out Loud.
PAUSE
GOTO :ASK

:WTF
ECHO.
ECHO What The F**k.
PAUSE
GOTO :ASK

:END
EXIT

Lenke til kommentar
  • 3 uker senere...

Eksempel:

@echo off
cls
echo Skriv inn passord!
set /p passord=
if %passord% equ eksempel goto rett
cls
echo Feil passord!
pause
exit
:rett
echo Rett passord!
start firefox.exe
pause
exit

Dette programmet ville kun akseptere passordet eksempel, vis brukeren skriver rett passord ville programmet hoppe til delen der det åpner firefox.exe. Vis ikke vil brukeren få en melding som sier "Feil passord!", og programmet avsluttes. Anbefaler deg å lese guiden og lære batch skikkelig...

Lenke til kommentar

Problemet med å lage passordbeskyttelse i batch er at det bare er å se på innholdet i batchfila for å finne ut hva passordet er. Et annet problem er dersom det er en .EXE/.COM eller annen vanlig eksekuterbar fil du vil kjøre, må filen allerede finnes, noe som betyr man kan starte programmet direkte istedet for å gå igjennom passordbeskyttelsen i batchen først. Men det går an å endre attributene på filer, slik at de er skjult. Brukere som ikke er spesielt kompetente på filattributasjon, etc, vil ikke klare å omgå passordbeskyttelsen, men kanskje de er i stand til å finne ut passordet ved å titte på kildekoden i batchen.

 

Uansett, her er en måte å gjøre det på:

 

Programfila du vil kjøre kaller jeg her PROGRAM.EXE, og er ikke skjult med filattributasjon.

Passordet for å få kjørt programmet kaller jeg 123ABC

Dersom du vil at passordet skal være 'case-sensitiv', altså skille mellom små og store bokstaver, fjerner du /I i IF-setningene.

 

@ECHO OFF
CLS
SET PASSWORD=ABC123
SET /P INPUT=Please enter password... (X = Abort)
IF /I "%INPUT%"=="X" GOTO :END
IF /I "%INPUT%"=="123ABC" GOTO :RUN
GOTO :WRONG

:RUN
CLS
PROGRAM.EXE
GOTO :END

:WRONG
ECHO.
ECHO  Wrong password.
GOTO :END

:END

Endret av skag1
Lenke til kommentar

@echo off

cls

echo Skriv inn passord!

set /p passord=

IF %haha% equ lol goto rett

cls

echo Feil passord!

pause

exit

:rett

cls

echo rett passord!

start itunes.exe

pause

exit

 

er det riktig? isåfall funker det ikke på meg =S passordet skulle ha vært "haha"

Endret av frodrikk
Lenke til kommentar
Er du sikker på at iTunes.exe er riktig? Kjør cmd og skriv start Itunes.exe. Btw, glemte å si at brukeren bare kunne redigere batch fila og se passordet...

7729017[/snapback]

ja sjekka, itunes.exe heter den. og samma om man kan se passordet, ingen i min familie skjønner det uansett =P

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...