Download Entornos de desarrollo de software

Document related concepts
no text concepts found
Transcript
Entornos de programación
Lenguajes de guiones (Scripting Languages)
© 2004-2006 Manuel Collado
Script-1
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
© 2004-2006 Manuel Collado
Script-2
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
© 2004-2006 Manuel Collado
Script-3
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.
© 2004-2006 Manuel Collado
Script-4
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)
© 2004-2006 Manuel Collado
Script-5
Lenguaje de órdenes de WinNT

Sintaxis general

orden argumentos...
interna (DIR, COPY, ... - no devuelve error)
 orden externa (programa o script - devuelve error)
 orden

Comentarios



REM texto del comentario
:: texto del comentario
Etiquetas


:nombre
GOTO nombre
© 2004-2006 Manuel Collado
Script-6
Lenguaje de órdenes de WinNT

Argumentos actuales




valor
/x
"valor ...\" ..."
(sin blancos)
(opción)
(con blancos, " literal)
Órdenes compuestas





orden ... & orden ...
orden ... && orden ...
orden ... || orden ...
( órdenes ... )
^&
^|
© 2004-2006 Manuel Collado
(secuencia)
(condicional, si éxito)
(condicional, si fallo)
(orden compuesta)
( & o | literal )
Script-7
Lenguaje de órdenes de WinNT

Escribir resultados



(línea en blanco)
Traza de ejecución




ECHO resultado
ECHO.
ECHO ON/OFF
@orden
ECHO
(control de traza)
(suprime traza)
(consulta estado de traza)
Terminar la ejecución

EXIT [/B [nivelerror]]
© 2004-2006 Manuel Collado
Script-8
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
© 2004-2006 Manuel Collado
(nivel de retorno)
Script-9
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)
© 2004-2006 Manuel Collado
Script-10
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)
© 2004-2006 Manuel Collado
Script-11
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
© 2004-2006 Manuel Collado
Script-12
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
valor1 compara valor2






(compara texto)
(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)
© 2004-2006 Manuel Collado
Script-13
Lenguaje de órdenes de WinNT

Estructuras de control: IF-GOTO
IF 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
© 2004-2006 Manuel Collado
Script-14
Lenguaje de órdenes de WinNT

Estructuras de control: bucle WHILE
:inicio-bucle
IF NOT condición GOTO fin-bucle
... acción del bucle
GOTO inicio-bucle
:fin-bucle
© 2004-2006 Manuel Collado
Script-15
Lenguaje de órdenes de WinNT

Estructuras de control: bucles FOR

FOR %%x IN (lista) DO acción-con-%%x
 repite

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

por cada valor de lista o archivos (lista=comodines)
para cada directorio (/D) o árbol de subdirector. (/R)
FOR /L %%x IN (inicio, paso, fin) DO ...
 bucle
con contador
© 2004-2006 Manuel Collado
Script-16
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
DIR /opciones...
© 2004-2006 Manuel Collado
(equivale a DIR *)
(/S /P /W /B /O ... etc.)
Script-17
Lenguaje de órdenes de WinNT

Listar el contenido de un fichero (texto)


(admite patrones)
Cambiar el nombre/extensión



TYPE fichero(s)
REN fichero nuevo-nombre (admite patrones)
nuevo patrón: nombre.*, *.ext
Eliminar ficheros

DEL patrón
© 2004-2006 Manuel Collado
(¡ojo!: * elimina todo)
Script-18
Lenguaje de órdenes de WinNT

Copiar o mover ficheros





COPY origen destino
COPY origen
MOVE origen destino
MOVE origen
(destino fich. o dir.)
(destino = .)
(destino dir.)
(destino = .)
Crear y eliminar directorios



MKDIR directorio
RMDIR directorio
(debe estar vacío)
se pueden abreviar: MD, RD
© 2004-2006 Manuel Collado
Script-19
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
© 2004-2006 Manuel Collado
Script-20
Lenguaje de órdenes de WinNT

Expansión de variables (sustitución de texto)


%var:antes=después%
Ejemplo:
SET var=texto
ECHO %var% -- %var:x=X%
 texto -- teXto
© 2004-2006 Manuel Collado
Script-21
Lenguaje de órdenes de WinNT

Cálculos aritméticos



SET /A variable = expresión
Ejemplo:
SET /A x = 11 + 22
x  33
SET /A x = x + 5
x  38
Obtener ayuda sobre una orden


orden /?
help [orden]
© 2004-2006 Manuel Collado
Script-22
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)
© 2004-2006 Manuel Collado
Script-23