Jeg ved ikke lige hvor man kan finde infp om "programmering" i bat-filer, men jeg kan da vise dig et eksempel på et "program" der er "programmeret" i en bat-fil. Programmet udskriver først Hello World, og starter derefter et andet program:
echo Hello World! c:\en_mappe\program.exe
P.S. Der er ikke noget der hedder Bat-programmering. Bat-filer er sådanset bare simple filer til at udføre en ønsket handling,så man ikke selv behøver at gøre det, men kan skrive det ned til Operativ-systemet en gang for alle, hvorefter det så udfører det automatisk. F.eks. når du har installeret et progam, så læg mærke til opstarten af Win98, hvor der står alt muligt lige fra Virus-scanning til opdatering af filer. Det er små programmer der er startet op automatisk.
Der er mange der tror, at det at lave en Bat-fil er det samme som at man kan programmerer. Jeg har flere gange måtte fortælle folk, at at det at lave en bat-fil ikke har det mindste med programmering at gøre.
Hvis du gerne vil følge bare lidt med tiden, så bruge Windows Scripting Host. Bat filerne var til det gamle DOS, og Windows Scripting Host er så til Windows. Det er hvist det der minder mest om programmering. Dette ligner lidt efter VB (LIDT)
:-) Bat filer er da lige så meget "programmering" som shell scripts, Widoze Scripting Noget, Perl, VB osv. Man kan faktisk "strikke" ret kunstfærdige sekvenser sammen i en bat fil. Du kan enda bruge dem til CGI scripts på din web server :-)
Man kan faktisk programmere en hel del i .BAT filer, som flere også gør opmærksom på - derudover kan man fyre ALLE de DOS kommandoer af, som man også kan fra en alm. DOS-boks.
Mht. dokumentation, er der vist ikke meget tilbage på Windows platformen - prøv at kigge de .txt filer igennem der ligger under C:\Windows
.BAT filer har et MEGET SIMPELT programmeringssprog indbygget, med følgende kommandoer:
IF "<parm>"=="<værdi>" IF NOT "<parm>"=="<værdi>" IF EXIST <filpath> IF NOT EXIST <filpath> IF ERRORLEVEL == <værdi> GOTO <label> FOR %%F IN (<filpath>) DO <kommando> ECHO <tekst> ECHO OFF ECHO ON ECHO.
hvor <parm> er %0 , %1, %2 osv. svarende til de parametre du angiver ved start af .BAT filen. (%0 er dog navnet på .BAT-filen selv.) <værdi> er en eller anden værdi, f.eks. af parameteren. <filpath> er en gyldig fil-path, inkl. ? og * som du kender det, f.eks. c:\*.bat <label> er en linie i din .BAT fil, der starter med : og labelens navn, f.eks. :END <kommando> er en hvilken som helst DOS kommando (eller kald af program) som du kan fyre af fra en DOS vindue <tekst> en hvilken som helst tekst du kan skrive. (Echo. giver en blank linie.)
ECHO kommandoen styrer om man skal kunne se de kommandoer der fyres af i .BAT filen mens den kører eller ej. (ECHO OFF betyder vis ingenting.)
Et lille fif: Når du skal afprøve din .BAT fil kan du starte den vha. command.com /K /Y <navn på bat fil>, så single-stepper DOS-fortolkeren igennem din .BAT fil.
Glemte et par vigtige kommandoer (den ene har egentlig ikke noget med .BAT at gøre, men er meget brugbar)
SET <variabel>=<værdi> REM <Tekst> SHIFT Skift alle parametre eet trin til højre PAUSE Stopper .BAT filen og venter på en tast for at køre videre. (Eller Ctrl+Break eller Ctrl+C for at stoppe)
hvor <variabel> er et eller andet navn, du vil bruge andetsteds i dit .BAT "program"
ERRORLEVEL parameteren indeholder evt. returkode fra kald af et program som f.eks. edit, og indeholder normalt en værdi forskellig fra 0, hvis noget er gået galt. ERRORLEVEL er en slags bit-vis sammenligning, så vis programmet returnerer værdien 5, er både IF ERRORLEVEL 5, IF ERRORLEVEL 3 og IF ERRORLEVEL 1 sande. Det er derfor meget normalt at man starter med at checke den højeste værdi først.
Et lille eksempel med det maste af d.o.
@echo off if "%1"=="/SHOW" goto SHOW
rem Default er at vise alle .BAT filer i roden. set FILESPEC=C:\*.BAT if NOT "%1"=="" set FILESPEC=%1
rem Vis de valgte filer. for %%f in (%FILESPEC%) do call %0 /SHOW %%f goto EXIT
:SHOW if exist %TEMP%\abort.cmd goto EXIT
SHIFT echo Viser filen %1 ... type %1 if ERRORLEVEL 2 GOTO ABORT if ERRORLEVEL 1 GOTO EXIT
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.