© 2004-2006 manuel colladoscript-1 entornos de programación lenguajes de guiones (scripting...

23
© 2004-2006 Manuel Collado Script-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

Upload: priscila-cayo

Post on 06-Feb-2015

5 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-1

Entornos de programación

Lenguajes de guiones (Scripting Languages)

Page 2: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-2

Grupos de lenguajes de programac. Lenguajes para programación de sistemas

System programming languages Rigurosos, seguros, eficientes Adecuados para programas complicados

Lenguajes de guiones (scripts) Scripting languages Flexibles, menos seguros, menos eficientes Adecuados para programas sencillos

Page 3: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-3

Ejemplos de leng. de programación Lenguajes para programación de sistemas

COBOL, FORTRAN, C/C++/C# Pascal, Modula-2, Oberon, Ada Java Lisp, Haskell, Smalltalk, Eiffel, ...

Lenguajes de guiones (scripts) Lenguajes de órdenes (command/shell languages) Rexx, Tcl, Perl, Pyton, Ruby VBScript, JavaScript

Page 4: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-4

Leng. de órdenes: características Asociados a algún Sistema Operativo Modos interactivo y no interactivo

Órdenes de usuario / automatización de operaciones Funciones

Ejecutar programas Usar/configurar dispositivos y servicios del S.O. Manipular ficheros y grupos de ficheros Elementos básicos de programación

Alternativas, bucles, variables, subprogramas, detección de errores, etc.

Page 5: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-5

Lenguajes de órdenes: Ejemplos MS-DOS, Windows

CMD.EXE - 32 bits (WinNT/2000/XP ) COMMAND.COM - 16 bit (MS-DOS, Win9x)

UNIX, Linux sh (Bourne, estándar) csh, tcsh (C, algo irregular) ksh (Korn, UNIX de ATT) bash (Bourne actualizado, Linux)

Page 6: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-6

Lenguaje de órdenes de WinNT Sintaxis general

orden argumentos... orden interna (DIR, COPY, ... - no devuelve error) orden externa (programa o script - devuelve error)

Comentarios REM texto del comentario :: texto del comentario

Etiquetas :nombre GOTO nombre

Page 7: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-7

Lenguaje de órdenes de WinNT Argumentos actuales

valor (sin blancos) /x (opción) "valor ...\" ..." (con blancos, " literal)

Órdenes compuestas orden ... & orden ... (secuencia) orden ... && orden ... (condicional, si éxito) orden ... || orden ... (condicional, si fallo) ( órdenes ... ) (orden compuesta) ^& ^| ( & o | literal )

Page 8: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-8

Lenguaje de órdenes de WinNT Escribir resultados

ECHO resultado ECHO. (línea en blanco)

Traza de ejecución ECHO ON/OFF (control de traza) @orden (suprime traza) ECHO (consulta estado de traza)

Terminar la ejecución EXIT [/B [nivelerror]]

Page 9: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-9

Lenguaje de órdenes de WinNT Ejecutar un programa o un fichero de texto con

órdenes (script) nombre argumentos...

ejecuta nombre.bat/cmd/exe/com lo busca en el directorio actual y en el PATH si es un script (.bat, .cmd), no retorna

CALL nombre argumentos... si es un script, sí retorna

CMD /C orden... Ejecuta un shell secundario y retorna

ERRORLEVEL (nivel de retorno)

Page 10: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-10

Lenguaje de órdenes de WinNT Argumentos o parámetros

nombre arg1 arg2 ... %1, %2, ... %9 SHIFT (%1%2 %3 %4...) %0 (nombre) %* (todos los argumentos)

Redirección de la E/S estándar nombre < entrada | otro-nombre > salida ... >> salida (añade nuevo texto) ... 2> salida (redirige salida de error) ... 2>&1 (combina error y salida normal)

Page 11: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-11

Lenguaje de órdenes de WinNT Entorno o contexto de ejecución

SET variable=valor (¡ojo!, sin dejar espacio) SET variable= (suprime la variable) %variable% (recupera el valor) SET prefijo (presenta una o varias variable) SET (presenta todas las variables) PATH lista-de-directorios (SET PATH=...) PATH (ECHO %PATH%) CD directorio (cambia directorio actual) x: (cambia unidad actual) CD (consulta directorio actual)

Page 12: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-12

Lenguaje de órdenes de WinNT Cambio de directorio, temporal

PUSHD directorio (cambia directorio actual) POPD (restaura anterior directorio actual) PUSHD/POPD puede anidarse

Entorno de ámbito limitado SETLOCAL (inicia ámbito local) SET/CD/PATH (cambios locales) fin del guión (termina el ámbito local) ENDLOCAL (termina el ámbito local) SETLOCAL/ENDLOCAL puede anidarse

Page 13: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-13

Lenguaje de órdenes de WinNT Estructuras de control: IF-THEN-ELSE

IF condición acción IF condición ( acción ) ELSE acción

Condiciones valor1 == valor2 (compara texto) valor1 compara valor2 (compara número o texto)

EQU, NEQ, LSS, LEQ, GTR, GEQ /I comparación (no distingue mayus./minus.) EXIST nombre (existe fichero o directorio) EXIST directorio\nul (existe directorio) ERRORLEVEL valor (error >= valor) NOT condición (negación)

Page 14: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-14

Lenguaje de órdenes de WinNT

Estructuras de control: IF-GOTOIF NOT condición GOTO no-condición... acción de sí-condición (then)GOTO fin-condición:no-condición... acción de no-condición (else):fin-condición

Page 15: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-15

Lenguaje de órdenes de WinNT

Estructuras de control: bucle WHILE:inicio-bucleIF NOT condición GOTO fin-bucle... acción del bucleGOTO inicio-bucle:fin-bucle

Page 16: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-16

Lenguaje de órdenes de WinNT Estructuras de control: bucles FOR

FOR %%x IN (lista) DO acción-con-%%x repite por cada valor de lista o archivos (lista=comodines)

FOR %%x IN (lista) DO CALL acción... evita salir del bucle si acción no retorna

FOR /D %%x IN (lista) DO ...FOR /R [raíz] %%x IN (lista) DO ...

repite para cada directorio (/D) o árbol de subdirector. (/R) FOR /L %%x IN (inicio, paso, fin) DO ...

bucle con contador

Page 17: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-17

Lenguaje de órdenes de WinNT Designar ficheros y grupos de ficheros

unidad:\directorio\...\nombre.ext por omisión, unidad o directorio actual . (directorio actual) .. (directorio padre) ?* (comodines)

Lista de ficheros o directorios DIR patrón DIR (equivale a DIR *) DIR /opciones... (/S /P /W /B /O ... etc.)

Page 18: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-18

Lenguaje de órdenes de WinNT Listar el contenido de un fichero (texto)

TYPE fichero(s) (admite patrones)

Cambiar el nombre/extensión REN fichero nuevo-nombre (admite patrones) nuevo patrón: nombre.*, *.ext

Eliminar ficheros DEL patrón (¡ojo!: * elimina todo)

Page 19: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-19

Lenguaje de órdenes de WinNT Copiar o mover ficheros

COPY origen destino (destino fich. o dir.) COPY origen (destino = .) MOVE origen destino (destino dir.) MOVE origen (destino = .)

Crear y eliminar directorios MKDIR directorio RMDIR directorio (debe estar vacío) se pueden abreviar: MD, RD

Page 20: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-20

Lenguaje de órdenes de WinNT Expansión de parámetros (referencia a ficheros)

%~ccp (cc: letras de código, p: parámetro) códigos: f: completo, d: unidad,

p: directorio, n: nombre, x: extensión a: atributos, t: fecha/hora, z: tamaño

Ejemplo: cd “c:\uno” %3=“dos\tres.txt” %~f3 c:\uno\dos\tres.txt %~d3 c: %~p3 \uno\dos\ %~n3 tres %~x3 .txt

Page 21: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-21

Lenguaje de órdenes de WinNT

Expansión de variables (sustitución de texto) %var:antes=después% Ejemplo:SET var=textoECHO %var% -- %var:x=X% texto -- teXto

Page 22: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-22

Lenguaje de órdenes de WinNT Cálculos aritméticos

SET /A variable = expresión Ejemplo:SET /A x = 11 + 22x 33SET /A x = x + 5x 38

Obtener ayuda sobre una orden orden /? help [orden]

Page 23: © 2004-2006 Manuel ColladoScript-1 Entornos de programación Lenguajes de guiones (Scripting Languages)

© 2004-2006 Manuel Collado

Script-23

Lenguaje de órdenes de WinNT Ayuda para la interacción

CLS (borra la pantalla) COLOR bf (cambia los colores)

bf (hexadecimal: fondo/texto) PAUSE (espera pulsación de tecla) MORE [fichero] (inserta pausas en texto largo) CHOICE [/C:opciones] [mensaje] (lee opción

y fija ERRORLEVEL. Requiere instalar kit de recursos)