WinBat v1.10  rev.049

per: M. Minoves

 

Introducció:

 

WinBat és un llenguatge de programació molt fàcil d’utilitzar i amb un nivell d’abstracció de molt alt nivell. Això significa que és molt fàcil i ràpid d’escriure en comparació als altres llenguatges de programació.

Està pensat per escriure programes o “Scripts” que automatitzin que automatitzin tasques com feines repetitives o lentes de fer manualment.

WinBat està pensat no com a un programa de desenvolupament sinó com a una eina útil per tenir a mà sigui quin sigui el treball que es faci amb l’ordinador, des d’ofimàtica fins a programació o oci.

El nom de WinBat prové de convergència de la senzillesa que tenien el programes .Bat de l’antic D.O.S. o Ms-Dos, i de l’entorn Windows. Els .Winbat son tan facils de crear com ho eren els antics .bat  però son una actualització a l’entorn Windows.

 

 

Podríem classificar els programes que el llenguatge winbat permet crear amb els següents tipus:

 

1.   Automatització de processos quan no hi ha cap usuari

Un exemple pot ser programar l’ordinador perquè s’engegui a una hora determinada, carregui els programes de la targeta sintonitzadora de televisió, seleccioni el canal, gravi el canal adequat, i finalment a la hora prevista quan hagi acabat de gravar, que guardi i que tanqui l’ordinador.

 

2.   Realització de tasques repetitives

Un exemple pot ser eliminar el primer caràcter a totes les línies d’un document del nostre procesador de textes. És a dir, enlloc d’haver de saltar línia a línia i eliminar l’espai inicial, creem un petit programa amb winbat (només calen 2 linies) que ho realitzi per nosaltres.

 

3.   Simplificació de tasques per poder configurar un ordinador per una persona que té dificultats amb la informàtica:

Poder  preparar l’ordinador perquè persones amb menys facilitat per la informàtica puguin executar o seguir un procés complicat, ja que el procés complicat pot quedar simplificat a un sol click.

 

4.   Poder realitzar més tasques amb programes de Windows com el nostre processador de textos:

Un exemple pot ser convertir documents. El nostre processador de textos pot no permetre aplicar modificacions a un grup de fitxers tots junts. És a dir, podem fer que Winbat obrir amb el processador de textos cada document, modificar-los un a un, i guardar-los en un altre format si cal.

 

5.   Filtratge i modificacions automàtiques de fitxers de text

Winbat també té comandes que permeten carregar un fitxer de text i aplicar-li diferents filtres i modificacions. Un exemple d’això pot ser crear un traductor d’idiomes de fitxers.

 

6.   Extracció de dades d’un fitxer de base dades

Podem carregar una base de dades de text i exportar a fitxers seleccions d’elements amb referències.

 

 

 

            Per altra banda Winbat també permet crear programes i ocultar-ne la facilitat en que s’ha creat. Usuaris avançats poden crear els seus programes i poder distribuir aquests de forma protegida. En el cas de voler que no es pugui veure ni modificar el programa que s’ha creat podem codificar-lo amb l’opció Codificar. Un cop codificat el podem executar de la mateixa manera que abans però no es pot editar ni visualitzar si no es té la contrasenya que s’ha especificat al codificar-lo.

 

 

 

 

Funcionament:

           

Inicialment Winbat s’engega amb l’editor en blanc per escriure un programa nou. En cas de voler carregar un programa ja guardat utilitzar l’opció “Navegar i obrir” per sel·leccionar i obrir el fitxer .winbat

 

Per guardar el que haguem escrit només cal utilitzar l’opció “Guardar com” per escriure un nom de fitxer i guardar, o si ja havíem especificat un nom només amb l’opció “Guardar” sobreescriu el fitxer anterior.

 

No cal utilitzar aquestes opcions d’obrir i guardar si recordem el nom del fitxer, ja que podem escriure directament el nom del fitxer en el quatre de text i clicar sobre “->Obrir” per obrir o bé “<-Guardar” per guardar-lo amb el nom que haguem escrit.

 

 

Execució de programes:

 

Per executar un programa ho podem fer de tres formes diferents. La primera és l’execució complerta del programa que es pot fer clicant sobre el botó “Executa Tot” o bé amb les tecles “Majuscules + F5”.

La segona forma d’execució és l’execució oculta en que el programa minimitzat amb una icona al costat del rellotge del Windows a baix a la dreta de la pantalla. Per executar el programa d’aquesta forma clicar sobre el botó “Executa Ocult” o bé amb les tecles “Control + F5”. Cal comentar que si es fa doble clic sobre un fitxer .winbat, s’executa d’aquesta forma, és a dir, de forma oculta.

La tercera i última modalitat és continuar l’execució a partir d’una certa línia de codi. Per fer-ho clicar sobre el botó “Cont Exec” o bé amb la tecla “F5”. L’execució es realitza a partir de la última línia que s’hagi executat, o bé podem modificar directament el camp “Línia d’execució” i escriure el número de línia que a partir d’on volem que s’executi.

 

Per aturar un programa que s’està executant podem prémer F4 o clicar sobre “Stop”.

Si s’està executant de forma oculta cal clicar amb el botó dret sobre la icona del winbat que estarà al costat del rellotge i seleccionar “Aturat”.

 

Codificació o Xifatge de programes:

Per poder realitzar aquesta opció hem de tenir un programa carregat.

Per codificar o descodificar un programa cal seleccionar l’opció “Codificar/Descodificar” o utilitzar les tecles “Control + D”.

Ens apareix un camp a on ens demana una contrasenya, l’escrivim i seleccionem “Codificar” per xifra el programa actual amb la nova contrasenya, o “Descodificar” per desxifrar el programa actual utilitzant la contrasenya especificada.

 

Opcions de Ratolí:

Una de les possibilitats que tenim amb el llenguatge Winbat és simular funcions amb el ratí, és a dir, clicar arrossegar, desplaçar,...

Per fer cal utilizar la comanda “mouse(x,y,esquerra,central,dret,moviment_de_roda)

on x i y son les coordenades a on volem que l’acció tingui efecte. (Veure secció comandes) Així és necessari conèixer les coordenades del lloc on volem que l’acció tingui efecte. Per això hi ha l’opció “Posició del Ratolí” amb “Control + P” que serveix per conèixer les coordenades x i y del ratolí en cada moment.

 

 

Substituir:

Winbat permet realitzar programes molt complexes. En programes llargs, pot ser útil poder substituir parts de codi per un altre. Això és realitza amb l’opció “Substituir” (“Control + R”).  Tenim tres camps: el camp buscar que és el texte que volem buscar per ésser substituït, el camp substiuir és el el texte que volem insertar, i el camp “Número màxim de substitucions” que és la quantitat màxima de vegades que es realitza una substitució i que si val -1 o 0 significa substituir totes les coincidències.

La casella “Només a partir de la posició actual” fa que només res realitzin substitucions a partir de la posició del cursor.

 

 

 

 

 

Comandes:

 

Remarques:

Les comandes o sintaxis no diferencia  Majúscules de minúscules

Totes les cadenes de caràcters son substituïbles pel seu equivalent en codis Ascii. Per fer-ho simplement excriure els codis ascii amb el caracter + fora dels “”

Per exemple: “Bondia” =  “Bo”+110+”di”+97

 

Comentari d'una línia:  S'ha de posar qualsevol dels següents caràcters al principi de la línia:

            '

            //

            /*

 

 

WAIT(ms)

            Espera ms milisegons.

WAIT(ms,minuts)

            Per especificar un temps gran es pot utilitzar el paràmetre minuts per especificar un nombre de minuts d’espera. Com a màxim 1440 minuts (1 dia).

 

EXEC("nom_del_programa")

EXEC("nom_del_programa",mode)

EXEC("nom_del_programa",mode,id)

 

            Executa un programa / una comanda de Ms-DOS.

 

            nom_del_programa: nom i ruta del programa/ comanda de Ms-DOS

            mode:  Forma en que s'ha d'executar el programa. Les opcions vàlides son:

                        0 Hide

                        1 NormalFocus

                        2 MinimizedFocus

                        3 MaximizedFocus

                        4 NormalNoFocus

                        6 MinimizedNoFocus

                       

                        El 1, 2 i 3 donen focus al programa, es a dir, el posen en primer pla. El 4 i 6 no el posen en primer pla. Si es posa el 0 el programa s’executa de forma oculta.

                        Per executar comandes de MS-DOS s’executen més ràpid, però de forma oculta, en mode 0.

                        En mode 0 es pot iniciar un fitxer no executable amb el seu programa associat amb la comanda:

 EXEC(“START <c:\document.doc>”,0)

            On c:\document.doc pot ser qualsevol fitxer amb qualsevol format que tingui associat un programa en Windows. El nom del document s’ha de posar entre les claus < i >, almenys sempre que no sigui el nom que té des de ms-Dos, és a dir, menys de 8 caràcters per directori i sense caràcters especials. Veure la comanda EXECDOC per més informació de com obrir documents amb el seu programa associat.

           

            id: Identificador de programa. És un número que serveix per poder operar amb el programa que s'executa.

 

exemples:

            exec("notepad document.txt",1)

            exec("notepad document.txt",4,2)

 

EXECDOC(“document.ext”,Mode,Funcio)

            Permet obrir, imprimir o explorar un document, programa o directori.

Mode pot pendre un valor del 0 al 10 segons la presentació que volem la finestra que obrim:

 

   Sense activar la finestra:

0     HIDE    Amaga la finestra i activa una altre finestra.

3     MAXIMIZE   Maximitza la finestra

6     MINIMIZE   Minimitza la finestra i activa la següent finestra.

9     RESTORE    Activa i ensenya la finestra. Si la fiestra estava minimitzada o maximitzada, aleshores es restaura a la posició i mida originals. Restaura una finestra minimitzada.

 

   Activant la finestra:

1     SHOWNORMAL  Activa i ensenya la finestra. Si la finestra estava minimitzada o maximitzada, aleshores es restaura a la posició i mida originals. Útil per quan s’utilitza la finestra per primera vegada.

5     SHOW   Activa la finestra i la ensenya amb la mida i posició actuals.

2     SHOWMINIMIZED  Activa la finestra i la minimitza.

3     SHOWMAXIMIZED  Activa la finestra i la maximitza.

4     SHOWNOACTIVATE  Ensenya la finestra en la última mida i posició que ha tingut. La finestra activa continua activa.

7     SHOWMINNOACTIVE  Ensenya la finestra de forma minimitzada. La finestra que hi havia activa continua activa.

8     SHOWNA  Ensenya la finestra en el seu estat actual. La finestra activa continua activa.

10   SHOWDEFAULT  Fixa la visualització per defecte.

 

 

Funcio pot valdre un valor del 0 al 3 en funció del que volem fer amb el fitxer especifica:

                        0 Executar el fitxer

                        1 Obrir el fitxer/directori

                        2 Imprimir el fitxer

                        3 Explorar el fitxer/directori

 

exemples:

            EXECDOC(“c:\document.doc”)

            EXECDOC(“c:\accesdirecte.lnk”)

            EXECDOC(“c:\document.doc”,,2)    ‘per imprimir el document.

            EXECDOC(“c:\windows\”,2,3)           ‘per explorar el directori windows.

            EXECDOC(“www.telecomunications.org”,3,1)           ‘obre el navegador per defecte amb la web especificada i el maximitza.

 

 

FOCU(id)

            Dóna focus a un programa, és a dir, posa al davant la finestra que volem.

            Útil per la comanda Send.

 

            id: identificador especificat en la comanda EXEC

 

exemples:

            focu(1)

            focu(2)

 

GOTO(línia)

GOTO(linia,vegades)

            Repeteix una sèrie de comandes.

            línia: número de línia d'instrucció. Les línies en blanc no son comptabilitzades però les línies de comentari sí.

            vegades: Número de vegades que s'ha de repetir. Un cop repetides segueix a la següent instrucció, però si es tornés a aquesta línia tornaria a repetir. És a dir que accepta recursivitat, una instrucció GOTO pot fer executar una altre instrucció GOTO.

 

exemples:

            goto(1)

            goto(15)

 

GOTO(-línies,vegades)

            Si –línies és un numero negatiu, repeteix des de les –línies anteriors a la instrucció goto. Així es pot especificar una línia de forma relativa a la instrucció goto.

 

exemples:

            goto(-5)           executa les 5 línies anteriors indefinidament.

            goto(-1,10)      executa la línia anterior 10 vegades.

 

BEEP

            Emet un soroll per identificar que el flux a passat per aquí.

 

 

STOP

            Acaba el procés d'execució.

END   Equivalent a la anterior

 

 

 

 

LOGOFF

            Tanca la sessió actual de windows esperant que es finalitzin les altres aplicacions.

LOGOFF(1)

            Tanca la sessió actual de windows sense que els programes ho puguin cancel·lar.

LOGOFF(2)

Tanca la sessió actual de windows encara que hi hagin programes bloquejats. LOGOFF(3)

Tanca la sessió actual de windows encara que hi hagin programes bloquejats i sense que els programes ho puguin cancel·lar.

 

 

REBOOT

            Reinicia l’ordinador esperant que es finalitzin les altres aplicacions.

REBOOT(1)

            Reinicia l’ordinador sense que els programes ho puguin cancel·lar.

REBOOT(2)

            Reinicia l’ordinador encara que hi hagin programes bloquejats.

REBOOT(3)

            Reinicia l’ordinador encara que hi hagin programes bloquejats i sense que els programes ho puguin cancel·lar.

 

 

 

OFF(modalitat,acció)

 

modalitat:

0: Tanca l’ordinador esperant que es finalitzin les altres aplicacions.

1: Tanca l'ordinador sense que els programes ho puguin cancel·lar.

2: Tanca l’ordinador encara que hi hagin programes bloquejats.

3: Tanca l’ordinador encara que hi hagin programes bloquejats i sense que els programes ho puguin cancel·lar.

 

acció:

0: Tancar l’ordinador apagant-lo.

1: Sortir del windows sense apagar l’ordinador

2: Reiniciar (equivalent a REBOOT)

3: Sortir de la sessió (equivalent a LOGOFF)

 

 

OFF

            Tanca l’ordinador esperant que es finalitzin les altres aplicacions.

OFF(1)

            Tanca l'ordinador sense que els programes ho puguin cancel·lar.

OFF(2)

Tanca l’ordinador encara que hi hagin programes bloquejats.

OFF(3)

Tanca l’ordinador encara que hi hagin programes bloquejats i sense que els programes ho puguin cancel·lar.

 

 

 

STANDBY

            Posa l’ordinador en mode suspensió

 

 

MOUSE(x,y,Besquerra,Bcentral,Bdret,Rodeta)

            Mou el ratolí a la posició de la pantalla (x,y), fa algun clic, i/o mou la rodeta del ratolí.

            x,y: poden ser de 3 tipus:         Absolutes:        x,y

                                                           Relatives:         +/-x, +/-y

                                                           Proporcionals a la pantalla:       x%,y%

            Les Absolutes són el número exacte de pixels que hi ha des de la posició superior esquerra de la pantalla i el punt seleccionat, essent x la coordenada horitzontal i y la ordenada vertical. Per facilitar poder trobar el pixel desitjat hi ha una utilitat dins del menú d’Eines que permet conèixer la posició del ratolí en qualsevol moment.

            Les Relatives són el número de pixels que cal desplaçar des de la posició actual del ratolí.

            Les Proporcionals és el percentatge de pantalla que ha de quedar horitzontalment a l’esquerra en el cas de la x, i verticalment per sobre en el cas de la y.

            Besquerra,Bcentral,Bdret: son respectivament els botons 1 2 i 3 del ratolí, i els valors que poden prendre són:

                        0: No esta apretat

1: Botó avall i amunt, s’ha clicat normal.

2: Doble clic.

                        3: Botó avall, s’ha clicat i es continua aguantant el botó premut.

                        4: Botó amunt, s’ha deixat de prémer el botó.

            Rodeta: és la quantitat de gir que se li produeix a la rodeta de desplaçament si el ratolí en té.

 

Exemples:

            MOUSE(100,150,1)   Fa un clic a la posició (100,150)

            MOUSE(+10,-15,2)   Desplaça el ratolí 10 pixels cap a la dreta i 15 cap adalt, i allà hi fa un doble clic.

            MOUSE(50%,50%,0,0,1)      Posa el ratolí al centre de la pantalla i prem el botó dret.

            MOUSE(33.333333%,40.5%,1,0,1)  Posa el ratolí a una tercera part de la pantalla verticalment, i un 40.5 % de la horitzontal, i aleshores clica simultàniament el botó dret i l’esquerra.

            MOUSE(100,200,3)   Prem i deixa premut a la posició (100,200) el botó esquerra del ratolí.

            MOUSE(+50,0,4)       Desplaça el ratolí cap a la dreta 50 pixels i després deixa anar el botó dret.

Les dues comandes anteriors col·locades una després de l’altre provoquen que s’arrossegui el que hi hagi a la posició (100,200), o si hi ha un text, que quedi seleccionat el tros que està entre el pixel (100,200) i el (150,200).

 

 

IFMOUSE(x,y)

IFMOUSE(x1,y1,x2,y2)

 

Executa comandes si el ratolí es troba en aquest moment exactament a la posició (x,y),  o bé dins del rectangle de vèrtexs (x1,y1) i (x2,y2)

Exemple:

 

IFMOUSE(10,20)

            ‘instruccions per executar si el ratolí està a la posició x=10, y=20

            IFDATE(100,200,110,210)

            ‘instruccions per executar si el ratolí està a la posició entre x=100 i x=110 i entre y=200 i y=210

            IFDATE

 

Exemple:  Si el següent script s’executa autmàticament a l’engegar el windows, fa que l’ordinador es tanqui automàticament cap de 60 segons si no s’ha mogut el ratolí:

 

            WAIT(60000)

IFMOUSE(512,384)

                        OFF

            IFMOUSE

 

 

 

SEND("tecles")

            Envia pulsacions de teclat.

            Cada tecla està representada per un o més caràcters. Per especificar un únic caràcter del teclat, s’utilitza el caràcter en sí. Por exemple, para representar la lletra E, s’ha d’utilitzar "A". Si es vol representar més d’un caràcter, només cal escriure’ls entre cometes. Per exemple, per representar les lletres A, B y C, s’ha d’utilitzar SEND("ABC").

            Par especificar caràcters que no es mostren al prémer una tecla (com por exemple Enter o Tab) i tecles que representen accions, es simbolitzen pels següent codis:

Tecla

Codi

Retrocés

{BACKSPACE}, {BS}o {BKSP}

Pausa

{BREAK}

Bloq Majusc

{CAPSLOCK}

Supr

{DELETE} o {DEL}

Fletxa aball

{DOWN}

Fi

{END}

Entrar

{ENTER}o ~

Esc

{ESC}

Ajuda

{HELP}

Inici

{HOME}

Insert

{INSERT} o {INS}

Fletxa esquerra

{LEFT}

Bloq Núm

{NUMLOCK}

Re Pàg

{PGDN}

Av Pàg

{PGUP}

Impr Pant

{PRTSC}

Fletxa dreta

{RIGHT}

Bloq Despl

{SCROLLLOCK}

Tab

{TAB}

Fletxa arriba

{UP}

F1

{F1}

F2

{F2}

F3

{F3}

F4

{F4}

F5

{F5}

F6

{F6}

F7

{F7}

F8

{F8}

F9

{F9}

F10

{F10}

F11

{F11}

F12

{F12}

F13

{F13}

F14

{F14}

F15

{F15}

F16

{F16}

 

            El signe més (+), el símbol de intercalació (^), el símbol de percentatge (%), el caràcter (~) i els parèntesis ( ) tenen significat especial.

 Para especificar un d’aquests caràcters s’ha d’incloure entre claus. Per exemple, per especificar el signe més, s’ha d’utilitzar {+}. Les claus ([ ]) no tenen un significat especial para Send, però s’han d’escriure entre claus també. Així, per especificar claus, s’ha d’utilitzar send("{{}") i send("{}}").

 

            Para especificar tecles amb una combinació qualsevol de les tecles MAJÚSC, CTRL y ALT, s’ha d’introduir davant del codi de la tecla un o més dels següents codis:

Tecla

Codi

Majúsc

+

Ctrl (Control)

^

Alt

%

            Per especificar que s’ha de mantenir polsada una combina de tecles de Majúsc., Ctrl o Alt mentre es premen altres tecles, s’ha de posar parèntesi davant de les tecles en que s’ha de mantenir premuda  la combinació de tecles. Per exemple, per especificar que s’ha de mantenir presa MAJÚSC mentre es premen les tecles A y B, s’ha d’escriure "+(AB)".

Per especificar que s’ha de mantenir premuda Majúsc mentre es prem la tecla E i que un cop deixades anar s’ha de prémer C, sense prémer Majúsc, s’ha d’utilitzar "+EC".

            Per especificar pulsacions repetides de tecles, s’ha d’utilitzar el format {tecla número}. Hi ha un espai entre la tecla i el número. Per exemple, ssefd{LEFT 33} significa que s’ha de prémer la tecla Fletxa Esquerra 33 vegades; {i 10} significa que s’han de prémer 10 vegades la tecla i.

            No es pot utilitzar Send per enviar pulsacions de tecles a aplicacions que no estan dissenyades para funcionar amb Ms Windows.

exemples:

            send("Hola, bon dia!")

            send("Hola {o 15}")

            send("{ENTER}")

            send("{ENTER 5}")

            send("{RIGHT}{DOWN}")

 

 

  Tancar programa:

            focu(2)

            send("%{F4}")

 

  Guardar al portapapers una captura de pantalla (imatge amb tot el que apareix per la pantalla)

            send("{PRTSC}")

 

SEND("tecles",1)

Igual que sense el segon paràmetre, però així no retorna el flux fins que s'han enviat correctament el codi de tecles.

 

TIME(hora)

Espera fins que sigui l’hora indicada. El flux del programa no continua fins que arribi l’hora.

exemples:

            TIME(14:02:22)

            TIME(2:1)       les 2h i 1 minut. Equivalent a    TIME(02:01)

            TIME(6:00)     les 6h en punt

IFTIME(hora1,hora2)

Si l’hora actual està dins de l’interval entre hora1 i hora2 aleshores s’executen les següents instruccions, si no està dins l’interval les instruccions següents fins al pròxim IFTIME no s’executen, o en cas de no ser-hi fins al final del programa.

exemple1:

            IFTIME(19,20)

            ‘instruccions a executar si l’hora actual està entre les 7 i les 8 de la tarda

            IFTIME(20:15,20:30)

            ‘instruccions a executar si l’hora actual esta entre les 8:15 pm i les 8:30 pm.

exemple2:

            IFTIME(20:12)

            ‘instruccions a executar si en aquest moment son les 8:12 pm

 

 

DATE(dia)

Espera fins que sigui el dia especificat. On dia es pot expressar en diferents formats:

-Un numero sol :  suposa més  i any actuals.

-Un dia / un mes:

-Un dia / un mes / un any:

 

IFDATE(data1,data2)

Semblant al IFTIME però per dates. Si el dia actual està dins de l’interval entre data1 i data2 aleshores s’executen les següents instruccions, si no està dins l’interval les instruccions següents fins al pròxim IFDATE no s’executen, o en cas de no ser-hi fins al final del programa.

Exemple:

            IFDATE(25/2/2002,24/3/2002)

            ‘instruccions per executar si avui és un dia entre el 25 de Febrer i el 24 de Març

            IFDATE(2,6)

            ‘instruccions per executar si el dia d’avui està entre el 2 i el 6 d’aquest mes.

            IFDATE

 

IFDATE(diasetmana1,diastmana2,1)

Quan el tercer paràmetre s’especifica i té un valor diferent de 0, indica que els dos primers paràmetres son dies de setmana, és a dir un valor entre el 1 i el 7, on diasetmana1 i diasetmana2 son el dia de la setmana començant a contar a partir de diumenge.

            1=Diumenge                2=Dilluns                     3=Dimarts

            4=Dimecres                 5=Dijous                     6=Divendres

            7=Dissabte

exemple:

            IFDATE(3,5,1)

            ‘instruccions a executar si avui som dimarts dimecres o dijous.

 

MSG(“Text per mostrar”,tipus_missatge,”Titol”)

            Tipus: pot prendre els valors següents:

                        0: Missatge sense icona i sense so.

                        1: Missatge informatiu.

                        2: Missatge d’exclamació.

                        3: Missatge crític o d’error.

                        4: Missatge sense icona i sense so, però modal.

                        5: Missatge informatiu modal.

                        6: Missatge d’exclamació modal.

                        7: Missatge crític o d’error modal.

            Que el missatge sigui modal vol dir que sempre queda per damunt de les altres finestres d’altres programes. Obliga a que l’usuari ho vegi.

Exemples:

            MSG(“El programa s’ha executat correctament”,1)

            MSG(“S’ha executat fins aqui”)

            MSG(“Programa finalitzat”,,”Estat del programa:”)

            MSG(“El procés de conversió ja s’ha executat. \n Ara es prosseguirà amb el següent pas.”,5,”Estat del programa:”)

En el darrer exemple el text inclou la combinació “\n” que significa un canvi de línia.

 

COPY(“origen”,”destí”)

 Copia arxius de forma ràpida.

On origen especifica l’arxiu o arxius a copiar

On destí especifica el lloc o el nom dels nous arxius

 

XCOPY(“origen”,”destí”,”paràmetres”)

Copia arxius i arbres de directoris.

On origen especifica l’arxiu o arxius a copiar

On destí especifica el lloc o el nom dels nous arxius

On paràmetres pot ser: [/A | /M] [/D[:data] [/P] [/S [/E]] [/W] [/C] [/I] [/Q] [/F] [/L] [/H] [/R] [/T] [/U] [/K] [/N]

Amb els significats:

 /A        Copia arxius amb atribut modificat, no canvia l’atribut.

 /M        Copia arxius amb atribut modificat, desactiva atribut modificat.

 /D:data  Copia arxius modificats al o després de la data especificada.

 
Si no es proporciona data, es copia només arxius la data dels quals sigui més recent que la del destí..

 /P        Sol·licita confirmació abans de crear arxiu destí.

 /S        Copia directoris i subdirectoris no buits..

 /E        Copia directoris i subdirectoris inclosos els vuits.
Igual que  /S /E. Pot ser utilitzat  per modificar /T.

 /W        Sol·licita que es premi una tecla abans de copiar.

 /C        Continua copiant fins i tot si es produeixen errors.

 /I        Si el destí no existeix i s’està copiant més d’un arxiu, es sobreentén que el destí és un directori.

 /Q        No mostra noms d’arxius al copiar.

 /F        Mostra noms complerts d’arxiu origen i destí al copiar.

 /L        Mostra arxius que seran copiats.

 /H        També copia arxius ocults i de sistema.

 /R        Sobre escriu  arxius de només lectura.

 /T        Crea estructura de directoris, però no copia arxius
           No inclou directoris o subdirectoris vuits. /T /E inclou directoris i subdirectoris vuits.

 /U        Actualitza arxius que ja existeixen en destí.

 /K        Copia atributs. Xcopy normal, restablir atributs de només lectura.

 /Y        Sobre escriu arxius existents sense sol·licitar confirmació.

 /-Y       Sol·licita confirmació per sobre escriure arxius existents.

 /N        Copia utilitzant els noms curts generats.

 

 

 

Comandes per processar textos:

 

OPEN(“fitxer”)

Obre un fitxer de text  i el carrega en memòria per tal de poder-hi treballar.

Aquesta instrucció serveix per treballar amb les instruccions REMP, SAVE,...

Exemple:

            OPEN(“c:\document.txt”)

 

SEARCH(“frase1”)

Canvia la posició actual a on troba frase1

SEARCH(“frase1”,no_discriminar)

Si no_discriminar val 1 no distingeix entre Majúscules i minúscules.

 

POS(caràcters)

Mou la posició actual caràcters caràcters endavant si caràcters es positiu, i endarrere si caràcters és negatiu

 

LINE(n_línia)

Mou la posició actual a la línia número n_línia.

LINE(n_línia,caràcters)

Mou la posició actual a la línia numero n_línia i li suma (o li resta si és negatiu) caràcters caràcters.

 

DEL(“frase1”)

Elimina la frase frase1 del text.

DEL(“frase1”,n_max)

Només elimina les n_max coincidències següents. Si n_max val 0, -1, o no es posa, s’eliminen totes les coincidències.

DEL(“frase1”,n_max, no_discriminar)

Si no_discriminar =1 aleshores no es distingeix si frase està en Majúscules o minúscules.

 

El caràcter “\t” significa una tabulació.

El caràcter “\n” significa canvi de línia.

Exemples:

            DEL(“\n”)

                        Elimina tots els canvi de línia

            DEL(“hola”,2,1)

                        Elimina les dues primeres coincidències amb hola, HOLA, Hola. etc.

 

DELINE(“frase1”)

Elimina totes les línies que contenen frase1.

DELINE(“frase1”,n_max)

Només elimina les n_max línies següents que continguin frase1. Si n_max val 0, -1, o no es posa, s’eliminen totes les línies

DELINE(“frase1”,n_max, no_discriminar)

Si no_discriminar =1 aleshores no es distingeix si frase està en Majúscules o minúscules.

Exemples:

            DELINE(“Pernil\t10Eur/Kg”)

                        Elimina totes les línies que contenen la frase “Pernil                  10Eur/Kg”  on l’espai llarg és una tabulació.

            DELINE(“\nHola”)

                        Elimina totes les línies que comencin amb la paraula Hola

DELINEPART(“delimitador_inici”,”delimitador_fi”)

Elimina a cada línia la part de text comprès entre el text delimitador_inici i delimitador_fi ambdós inclosos.

 

DELINEPART(“delimitador_inicial”,”delimitador_final”,comptador1,comptador2)

Si delimitador_inici apareix vàries vegades en una mateixa línia, només té en compte la vegada número comptador1

De la mateixa manera, coptador2 compta el número de vegades del delimitador_fi en una mateixa línia

   

 

 

DELINECHAR(num_caracters_principi,num_caracters_final)

Elimina els primers num_caracters_prncipi caracters al principi i els últims num_caracters_final al final de cada línia.

 

DELINECHAR(num_caracters_principi,num_caracters_final,maxlínies)

Elimina els caracters igual però només de les primeres maxlínies linies               

 

 

 

WRITE(“text1”)

Insereix a la posició actual el text text1.

 

REPL(“frase1”,”frase2”)

Substitueix totes les frases frase1 per frase2 dins del text carregat en memòria amb la instrucció OPEN. Només canvia les frases frase1 que estan desprès de la posició actual (la posició actual es modifica amb la comanda SEARCH)

Exemples:

            REPL(“ y “,” i “)                      atenció amb els espais intencionats

            REPL(“ elicopter”,” helicòpter”)

 

REPL(“frase1”,”frase2”,n_vegades)

Substitueix les n_vegades primeres frases frase1 per frase2.

Si n_vegades val 0, -1 o no s’especifica, es substitueixen totes.

 

REPL(c_ascii1+ ...+ c_asciiN + “frase1” + c_ascii1 + c_ascii2 +  ... + c_asciiN, c_ascii1 + c_asciiN + “frase2” + c_ascii1 + c_ascii2 + ... + c_asciiN)

Es poden especificar caràcters especials amb el seu codi Ascii, simplement tancant les cometes i afegint un +.

Exemples:

            REPL(55 + ”hole”+56+55,67+68+”hola”+44)

 

REPL(“frase1”,”frase2”,n_vegades,no_discriminar)

Si no_discriminar val 1 aleshores no es distingeix entre Majúscules i minúscules, i aleshores es substitueixen totes les frases frase1, encara que les Majusc. i minusc. no coincideixin.

REPL(“frase1”,”frase2”,n_vegades,no_discriminar,tota_la_linia)

REPL(asci...+"text"+...asci, asci...+"text"+...asci, n_vegades, no_discriminar, tota_la_linia)

Si tota_la_linia val 1 aleshores enlloc de substituir frase1 per frase2 es substitueix tota la línia que conté frase1 per la frase frase2.

Asci són el numero del caràcter ascii que es vol representar.

 

Exemples:

            REPL(“hola”,”adéu”,10,)         es substitueixen els 10 primers “hola” a partir de la posició actual per “adéu”. La posició actual es canvia amb instruccions com SEARCH, POS o LINE.

            REPL(“hola”,””,0,0,1)      s’eliminen totes les linies que contiguin “hola”  i no “Hola” o “HOLA” etc.   És equivalent a DELINE(“hola”)

            REPL(10+13+”hola”,10+13+”adéu”)  es substitueixen tots els hola que estan a principi de línia per adéu.

           

OEMTOANSI()

            Converteix el text seleccionat amb la comanda OPEN de caràcters OEM a caràcters ANSI. A vegades al passar un fitxer d’un programa a un altre, el primer ho escriu amb OEM i el segon ho llegeix amb ANSI, cosa que comporta una mala visualització de caràcters especials. Utilitzar aquesta opció si els accents o caràcters especials com la “ç” no es visualitzen correctament.

Exemple:

            OPEN(“c:\export.txt”)

            OEMTOANSI

            SAVE(“c:\import.txt”)

 

SAVE(“fitxer”)

Guarda al disc el text carregat en memòria hagi estat o no modificat. El fitxer pot ser diferent al que s’ha especificat en la instrucció OPEN.

Exemple:

            SAVE(“c:\document2.txt”)

 

Comandes per processar bases de dades:

DEF(referencia)

            Estableix la part de referència que es sobre entén (referència per defecte) de la funció REF.

            Referencia: pot ser un numero, lletres o una mescla dels dos.

 

REF(fitxer:selecció_referències<exclusió_referències>)

            Genera un fitxer amb el contingut de la selecció de referències especificada en selecció_referències, excepte els que estan en la exclusió_referències.

            En cas que les referències no es puguin trobar es genera un missatge d’alerta.

            El fitxer amb la base de dades a treballar es selecciona amb la instrucció OPEN.

            Fitxer: nom del fitxer a guardar.

 

            Selecció_referències: Per seleccionar referències individuals separar-les per comes (“,”) per seleccionar un interval de referències separar-les per un guió (“-“). Es poden usar aquestes estructures tantes vegades com es vulgui.

            Exclusió_referències: Són els elements que s’han d’excloure de la selecció. La elecció d’aquests elements es fa de la mateixa manera que en la selecció.

Exemple 1:

            OPEN(“bd.txt”)

            DEF(1)

REF(“c:\3b.txt”,”12,14,17-25,<19,21-23>”) Posa al fitxer c:\3b.txt les línies del fitxer bd.txt que comencen amb: 112,114,117,118,120,124 i 125.

Exemple 2:

            OPEN(“bd.txt”)

            DEF(Ref=)

REF(“resultat.txt”,”12-15,<14>,32,32b,42-45,<32,43-44>”)

Posa al fitxer resultat.txt les línies del fitxer bd.txt que comencen amb: Ref=12, Ref=13, Ref=15, Ref=32b, Ref=42 i Ref=45.

 

 

Crides al programa des de Windows 9x/Me/NT/XP

 

            En tots el fitxers *.winbat s'ha afegit al menú contextual la opció Obrir i Editar. Fent doble click s'executa el programa .winbat.  Amb la opció editar no s'executa i es pot modificar.

 

 

 

Crides al programa des de MS-DOS

 

winbat.exe nom_del_programa.winbat

            Obre el fitxer especificat.

winbat.exe /exec nom_del_programa.winbat

            Obre el fitxer especificat i l'executa de forma autònoma.

 

 

 

 

Llicència

 

Es permet la distribució i l’ús d’aquest programa sota la llicència de programa gratuït GNU.

Qualsevol crítica, suggeriment o millora serà benvingut, gràcies.

 

 

Podeu descarregar el Winbat i programes d’exemple pel winbat a la web del programa:

  http://www.aldeaglobal.net/winbat

 

 

Gràcies,

 

M. Minoves